Menterjemahkan

Sabtu, 30 Maret 2013

PROYEK ARDUINO : ROBOT SEDERHANA PENYORTIR WARNA

Membuat Sendiri Mainan Edukatif Interaktif 

Video 1 Robot Penyortir Warna

Mainan edukatif interaktif yang bayak beredar saat ini sebagian besar sudah mengarah ke mainan yang bernuansa modern dan sarat teknologi tinggi seperti game Komputer, Walky-talky, robot, alat musik, dan lain-lain. Contoh game interaktif yang diperuntukkan bagi anak perempuan, yang mengajarkan segala aspek kewanitaan seperti cara bersolek atau berdandan, cara memasak, cara merawat bayi, cara merawat hewan piaraan kesayangan dan lain-lain, yang kesemuanya bisa dilakukan secara interaktif dan menarik.

Dari sisi anak-anak yang menggunakan mainan tersebut juga tampak senang dan tidak merasa terbebani dan atau bahkan sebaliknya merasa tertantang. Sebagian dari mereka bahkan sudah bisa membuat game interaktif sendiri dan di-share dengan anak-anak usia sebayanya via internet.

Kondisi seperti ini dapat membuat perubahan besar pada diri anak-anak terutama menyongsong era teknologi modern di masa dewasanya nanti, dimana mereka mampu beradaptasi dengan IPTEK, barang-barang atau alat-alat rumahtangga berteknologi modern, serta memberi nuansa tersendiri dalam upaya pengembangan industri kreatif (karena setiap generasi mempunyai persoalan dan tantangan tersendiri).

Di sisi lain ada pemberitaan yang membuat kita prihatin yaitu sebagian Tenaga Kerja Indonesia yang bekerja di negara maju yang mengalami kesulitan beradaptasi dengan peralatan rumahtangga yang lebih modern; Aparat Pemerintah yang belum siap beradaptasi dengan teknologi informasi, menyebabkan pelayanan kepada masyarakat tidak optimal.

Melalui tulisan ini penutis ingin memberikan pandangan dan sambutan positif terhadap perkembangan teknologi, khususnya Arduino dalam upaya pengembangan kreatifitas dan menyongsong tumbuhnya industri kreatif, yang pada akhirnya nanti bisa memberikan manfaat positif bagi peningkatan kesejahteraan manusia.        

Mengapa Arduino? Karena Arduino dirancang secara sederhana, opensource, biaya relatif murah akan tetapi bisa menghasilkan ribuan kreatifitas dan didukung beberapa toko robotik online yang menyediakan bahan dan peralatan, serta artikel-artikel popoler menarik yang dibutuhkan untuk pengembangan kreatifitas dengan harga relatif terjangkau.

Belajar Arduino tidak boleh berhenti hanya pada mempelajari teori-teori arduino dan mempraktekkan proyek-proyek yang sudah ada di buku, akan tetapi harus bisa menghasilkan produk inovatif yang bisa memberi manfaat bagi pengembangan kecerdasan anak-anak dan menciptakan produk-produk kebutuhan sehari-hari yang bisa mempermudah melakukan segala aktifitas kehidupan positif.

Selanjutnya, mari kita praktek membuat sendiri mainan interaktif yang dalam Proyek Arduino ini membuat Robot Sederhana Penyortir Warna.



Tahap Persiapan

Mempersiapkan Bahan dan Alat 

Bahan-bahan yang digunakan dalam proyek ini antara lain adalah : 

·         2 x Capasitor 22 pF
·         1 x Resistor 330 ohm
·         1 x Resistor 10 K ohm
·         1 x Resistor 33 K ohm
·         1 x LDR
·         1 x RGB LED Commom Cathode
·         1 x Crystal Oscilator 16-MHz
·         Mur dan Baut M3 8 mm (jumlah sesuai kebutuhan)
·         Mur dan Baut M2 8 mm (jumlah sesuai kebutuhan)
·         PCB IC
·         Kabel BreadBoard
·         U Shape Jumper Wires
·         1 x ATmega 328P
·         Kabel Pelangi secukupnya
·         1 x Female Housing 1 pin
·         1 x Female Housing 2 pin
·         1 x Female Housing 3 pin
·         Tenol sesuai kebutuhan
·         1 x 9v Battery Holder with Jack and Switch Plus Battery 9V
·         1 x BreadBoard 400 holes dengan Power Supply
·         2 x Micro Servo
·         1 x Standard Servo
·         Akrilik atau Tripleks sesuai kebutuhan
·         2 x Plastic Gear
·         PVC Telephone Duct
·         PVC Wiring Duct
·         Kertas Origami berbagai warna sesuai kebutuhan
·         Kertas Karton sesuai kebutuhan
·        Lem Kertas sesuai kebutuhan

Untuk lebih jelasnya bisa dilihat pada Gambar di bawah ini


Gambar 1 Bahan-bahan yang dibutuhkan


Peralatan yang digunakan dalam proyek ini antara lain adalah :

·         Gunting
·         Alat Bor
·         Tang
·         Penggaris Aluminium
·         Pemotong Akrilik
·         Pensil
·         Solder
·         Obeng 
·         Komputer PC (Desktop atau Notebook)
·        Arduino (dalam project ini digunakan Arduino Duemilanove with ATmega328)

Untuk lebih jelasnya bisa dilihat pada Gambar di bawah ini
Gambar 2 Peralatan yang dibutuhkan


Burning Bootloader

Mikrokontroller ATmega328 belum siap digunakan apabila masih kosong atau belum diisi Bootloader. Untuk itu perlu dilakukan Burning Bootloader. Dalam Proyek Arduino ini digunakan Bootloader Arduino Duemilanove.

Ada beberapa cara burning Bootloader. Dalam Proyek ini burning Bootloader menggunakan Board Arduino Duemilanove with ATmega328 sebagai ISP (in-system program). Caranya adalah sebagai berikut :

·        Bangunlah rangkaian seperti Gambar berikut :
Gambar 3 Rangkaian untuk Burning Bootloader
dengan Arduino Duemilanove with ATmega328 sebagai ISP

·        Buka Program Arduino yang dalam Proyek ini menggunakan Arduino Versi 1.0.1
·        Buka Sketch ArduinoISP dengan cara klik menu File - Klik Examples - Pilih ArduinoISP seperti Gambar berikut :

Gambar 4 Membuka Sketch ArduinoISP

Muncul Sketch ArduinoISP seperti Gambar berikut :
Gambar 5 Sketch ArduinoISP

·        Hubungkan Rangkaian (Gambar 3) dengan Komputer menggunakan kabel USB
·        Pada Program Arduino pilih Board yang sesuai dengan Board Arduino yang digunakan untuk burning Bootloader. Dalam Proyek ini pilih Arduino Duemilanove w/ATmega328 dengan cara Klik menu Tools - klik Board - pilih Arduino Duemilanove w/ATmega328 seperti Gambar berikut :
Gambar 6 Memilih Board Arduino Duemilanove w/ATmega328

·        Pilih Port USB pada Program Arduino yang sesuai dengan port USB tempat menghubungkan Rangkaian Gambar 3 tersebut dengan cara Klik menu Tools - Klik Serial Port - Pilih misalnya COM4 seperti Gambar berikut

Gambar 7 Memilih Serial Port yang sesuai

Pastikan bahwa Board dan Serial Port yang dipilih sudah sesuai

·        Upload ArduinoISP ke Rangkaian Gambar 3 dengan cara Klik tombol Upload seperti pada Gambar berikut
Gambar 8 Upload ArduinoISP

·        Klik menu Tools - Klik Programmer - Pilih Arduino as ISP seperti Gambar berikut

Gambar 9 Memilih Arduino as ISP

·        Lakukan Burning Bootloader dengan cara Klik menu Tools - Klik Burn Bootloader seperti pada Gambar berikut
Gambar 10 Burning Bootloader

Apabila Burning Bootloader berhasil, maka ATmega328 siap diisi program.


Tahap Pembuatan

Membuat Lengan Robot

Dalam tulisan ini sengaja tidak dusebutkan secara rinci mengenai prosedur pembuatan, ukuran serta gambar pola karena apa yang dituangkan di dalam tulisan ini bukanlah merupakan hal yang baku. Para pembaca bisa mengembangkannya sehingga diperoleh hasil yang lebih baik sesuai keinginan.

Lengan robot yang dibuat dalam proyek ini terdiri dari satu Micro Servo yang berfungsi membuka dan menutup capit, satu mikro servo yang berfungsi menggerakkan sikut naik turun, dan satu standard servo yang berfungsi menggerakkan lengan ke kiri dan ke kanan. Untuk lebih jelasnya dapat dilihat pada Gambar berikut

 Gambar 11 Lengan robot beserta komponen penyusunnya


Membuat Sensor Warna

Sensor warna terdiri dari dua komponen inti yaitu RGB LED dan LDR. Untuk meningkatkan akurasi peneraannya, sensor warna yang mengandung LDR ini harus berada di tempat tertutup agar terhindar dari pengaruh cahaya dari luar. Rangkaian selengkapnya dapat dilihat pada Gambar berikut 
Gambar 12 Rangkaian Elektronik Sensor Warna

Catatan : Posisi LDR harus lebih kedepan daripada RGB LED, dimaksudkan agar LDR hanya menerima cahaya dari pantulan objek yang ditera.

Membuat Rangkaian Arduino Minimalis on Breadboard

Pembuatan Arduino minimalis dimaksudkan untuk menekan biaya pembuatannya sehingga apabila diproduksi secara massal, harganya bisa bersaing. Rangkaian selengkapnya dapat dilihat pada Gambar berikut 

Gambar 13 Diagram Rangkaian Arduino Minimalis on Breadboard
yang dihubungkan dengan rangkaian sensor dan
servo penggerak capit, sikut dan lengan

Pada Gambar 13 terlihat jelas adanya pembagian sumber daya listrik rangkaian menjadi dua bagian. Bagian pertama yaitu jalur sebelah kiri untuk menyediakan sumber daya listrik ke Mikrokontroller, RGB LED, dan Sensor. Sedangkan bagian kedua yaitu jalur sebelah kanan untuk menyediakan sumber daya listrik khusus untuk ketiga buah Servo. Untuk itu maka dalam proyek ini pada Breadboard dipasang Breadboard Power Supply 3V/5V dengan kedua switch diset ke posisi 5V dan kedua jumper diset pada posisi On. Arus minimal yang tersedia untuk masing-masing jalur adalah 0,8 Ampere, cukup untuk menggerakkan 3 servo analog yang diperintah secara bergantian (tidak bersamaan).

Catatan : Agar Servo bisa bekerja optimal, maka sumber daya listrik untuk servo harus terpisah dari sumber daya listrik untuk rangkaian yang lain, dan besarnya juga harus memadai untuk menggerakkan Servo.

Untuk lebih mudahnya memahami rangkaian tersebut dan perintah-perintah yang sesuai untuk progran arduino, berikut dicantumkan Gambar kesesuaian antara pin-pin pada ATmega328 dengan fungsi pin-pin pada Arduino
Gambar 14 Peta pin ATmega 328 versus Peta fungsi pin pada Arduino


Membuat Aksesoris Robot

Yang dimaksud aksesoris robot dalam Proyek ini antara lain adalah Penopang Lengan Robot, Objek berwarna yang dapat dipegang oleh capit robot, dan Cawan berwarna sebagai penampung Objek. Dalam tulisan ini juga tidak dijelaskan secara rinci cara membuat aksesoris robot karena aksesoris yang dibuat dalam Proyek ini bukanlah hal yang baku. Pembaca boleh membuatnya sesuai kreatifitasnya. Yang jelas, untuk ukuran Objek berwarna harus sesuai dengan kapasitas capit robot baik besar maupun beratnya. Demikian pula untuk Cawan berwarna penampung Objek, ukurannya harus bisa menampung beberapa Objek. Bangun Robot selengkapnya dapat dilihat pada Gambar berikut
Gambar 15a Robot Penyortir Warna (tampak depan)
 Gambar 15b Robot Penyortir Warna (tampak atas)

Kalibrasi Sensor Warna

Pada tahap kalibrasi ini Robot penyortir warna dibekali dengan kemampuan mengenali beberapa warna secara akurat. Dengan demikian, Robot akan bisa diperintah apa saja sehubungan dengan kemampuan penyortiran warna tersebut.

Prinsip kerja kalibrasi ini antara lain adalah pada saat sensor robot menera objek warna tertentu, pada layar monitor komputer akan muncul kombinasi angka tertentu untuk R(Red), G(Green), dan B(Blue) sesuai dengan warna objek yang diteranya. 

Membuat Program Kalibrasi

Untuk bisa melakukan kalibrasi, robot harus diberikan perintah dalam bentuk program sebagai berikut :

/* Program Kalibrasi Sensor Warna
   Oleh   : Zainuri
   web    : zainms.blogspot.com
   update : 4 Maret 2013
*/
   
int PinSensor = A0; // Sensor (LDR) pada Pin Nomor A0
int PinLedMerah =3; // Led Warna Merah pada Pin Nomor 3
int PinLedHijau=4; // Led Warna Hijau pada Pin Nomor 4
int PinLedBiru=5; // Led Warna Biru pada Pin Nomor 5
int Hasil,HasilMerah,HasilHijau,HasilBiru;

void setup() {
// Menetapkan Pin Led Merah, Hijau, Biru sebagai OUTPUT:
  pinMode(PinLedMerah,OUTPUT);
  pinMode(PinLedHijau,OUTPUT);
  pinMode(PinLedBiru,OUTPUT); 
  digitalWrite(PinLedMerah,LOW);
  digitalWrite(PinLedHijau,LOW);
  digitalWrite(PinLedBiru,LOW);

  Serial.begin(9600);
  delay(1000);

  Serial.println("  R   G   B");
  Serial.println("--- --- ---");

}

void loop() {

   digitalWrite(PinLedMerah,HIGH); // Menyalakan Led Merah
   delay(150); // Jeda 150 mili detik agar LDR bisa Membaca Warna Merah
// Membaca Data Sensor (LDR) :
   Hasil= analogRead(PinSensor);
   HasilMerah=map(Hasil,0,1023,0,255);
   Serial.print(HasilMerah);
   digitalWrite(PinLedMerah,LOW);   
   delay(150);

   digitalWrite(PinLedHijau,HIGH); // Menyalakan Led Hijau
   delay(150); // Jeda 150 mili detik agar LDR bisa Membaca Warna Hijau
// Membaca Data Sensor (LDR) :
   Hasil= analogRead(PinSensor);
   HasilHijau=map(Hasil,0,1023,0,255); 
   Serial.print(" ");
   Serial.print(HasilHijau);
   digitalWrite(PinLedHijau,LOW);   
   delay(150);

   digitalWrite(PinLedBiru,HIGH); // Menyalakan Led Biru
   delay(150); // Jeda 150 mili detik agar LDR bisa Membaca Warna Biru
// Membaca Data Sensor (LDR) :
   Hasil= analogRead(PinSensor);
   HasilBiru=map(Hasil,0,1023,0,255); 
   Serial.print(" ");
   Serial.println(HasilBiru);
   digitalWrite(PinLedBiru,LOW); 
   delay(150);
}

·        Siapkan rangkaian Arduino Minimalis on Breadboard untuk diisi program kalibrasi menggunakan FTDI Chip yang ada pada Board Arduino Duemilanove yang sudah dilepas mikrokontrollernya dan Power Supply 3V/5V pada Breadboard juga harus dilepas karena sudah menggunakan power supply dari Arduino yang berasal dari Komputer. Rangkaiannya seperti Gambar berikut

Gambar 16 Rangkaian menggunakan FTDI pada Arduino untuk mengisi
sketch program kalibrasi pada Arduino Minimalis on Breadboard

Pada Gambar 16 pin 5V Arduino dihubungkan ke baris positif breadboard (menggunakan kabel merah), pin GND Arduino dihubungkan dengan baris negatif breadboard (menggunakan kabel hitam), pin RESET Arduino dihubungkan dengan pin nomor 1 ATmega328 breadboard (menggunakan kabel biru), pin TX Arduino dihubungkan dengan pin nomor 3 ATmega328 breadboard (menggunakan kabel kuning), dan pin RX Arduino dihubungkan dengan pin nomor 2 ATmega328 breadboard (menggunakan kabel hijau). Untuk lebih memahaminya, silakan lihat Gambar 14 Peta pin ATmega 328 versus Peta fungsi pin pada Arduino.

  • Buka program Arduino dan tulis program kalibrasi atau copy paste program kalibrasi yang ada di halaman ini atau berasal dari pemikiran Anda sendiri seperti Gambar berikut
Gambar 17 Sketch Program Kalibrasi Sensor Warna

·        Hubungkan rangkaian pada Gambar 16 dengan komputer menggunakan kabel USB.
·        Pilih Board Arduino Duemilanove w/ATmega328 dengan cara Klik Tools - Klik Board - Pilih Arduino Duemilanove w/ATmega328 seperti Gambar berikut
Gambar 18 Pilih Arduino Duemilanove w/ATmega328

·        Pilih Serial Port yang sesuai dengan cara Klik Tools - Klik Serial Port - Pilih port yang sesuai misalnya COM6 seperti Gambar berikut
Gambar 19 Serial Port yang menghubungkan Komputer dengan
Rangkaian Arduino Minimalis on Breadboard

Pastikan bahwa board yang dipilih adalah Arduino Duemilanove w/ATmega328 dan Serial Port sudah sesuai.

·        Upload program kalibrasi sensor warna dengan cara Klik tombol Upload seperti Gambar berikut
Gambar 20 Upload Program Kalibrasi Sensor Warna


Proses Kalibrasi

·        Letakkan objek berwarna tertentu ke sensor warna seperti Gambar berikut
Gambar 21 Meletakkan Objek Berwarna pada Sensor Warna

·        Pada Program Arduino lakukan pembacaan warna oleh sensor warna dengan cara Klik menu Tools - Klik Serial Monitor seperti Gambar berikut
Gambar 22 Serial Monitor

Maka pada layar komputer akan muncul kombinasi angka spesifik untuk R, G, B seperti pada Video berikut
Video 2 Kalibrasi Sensor Warna

Biarkan pembacaan terjadi beberapa kali misalnya sampai 60 kali, kemudia dihitung nilai rata-rata untuk R, G, dan B pada setiap objek berwarna yang ditera oleh sensor warna.
Setelah diolah diperoleh hasil kalibrasi sensor warna seperti Gambar berikut
Gambar 23 Hasil Kalibrasi Sensor Warna


Membuat Program Robot Penyortir Warna

Data hasil kalibrasi sensor warna yang sudah diolah siap untuk dipergunakan sebagai pembanding terhadap data hasil peneraan sensor warna. Adapun rumus perbandingannya adalah sebagai berikut :

if(abs(HasilMerah-R)<k && 
abs(HasilHijau-G)<k && 
abs(HasilBiru-B)<k)
{Serial.println("WARNA ........\n");

Misalnya untuk warna merah. Rata-rata hasil kalibrasi untuk warna merah adalah : R=240, G=232, B=205. Sehingga setelah angkanya dimasukkan ke dalam rumus, hasilnya adalah :

if(abs(HasilMerah-240)<k && 
abs(HasilHijau-232)<k && 
abs(HasilBiru-205)<k)
{Serial.println("WARNA MERAH\n"); damana k adalah toleransi warna

Demikian pula untuk warna-warna yang lain. 

Catatan : Jenis warna yang digunakan dalam Proyek ini bukan merupakan hal yang baku. Pembaca bisa menggunakan bermacam-macam warna. Semakin banyak ragam warna, sensor harus dibuat semakin akurat dan Servo lengan yang digunakan harus mempunyai kemampuan berputar dengan sudut putar yang lebih kecil.

Setelah semua hasil kalibrasi dimasukkan ke dalam rumus perbandingan tersebut, maka Program Robot Penyortir Warna siap diupload

/* Program Robot Penyortir Warna
   Oleh   : Zainuri
   web    : zainms.blogspot.com
   update : 4 Maret 2013
*/
  
#include <Servo.h>
Servo ServoCapit;
Servo ServoSikut;
Servo ServoLengan;
int PinSensor = A0; // Sensor (LDR) pada Pin Nomor A0
int PinLedMerah =3; // Led Warna Merah pada Pin Nomor 3
int PinLedHijau=4; // Led Warna Hijau pada Pin Nomor 4
int PinLedBiru=5; // Led Warna Biru pada Pin Nomor 5
int Hasil,HasilMerah,HasilHijau,HasilBiru;
int k=6;  // Toleransi Warna

void setup() {
// Menetapkan Pin Led Merah, Hijau, Biru sebagai OUTPUT:
  pinMode(PinLedMerah,OUTPUT);
  pinMode(PinLedHijau,OUTPUT);
  pinMode(PinLedBiru,OUTPUT); 
  digitalWrite(PinLedMerah,LOW);
  digitalWrite(PinLedHijau,LOW);
  digitalWrite(PinLedBiru,LOW);
  ServoCapit.attach(9); // Menempatkan Servo Capit pada Pin Nomor 9
  ServoSikut.attach(10); // Menempatkan Servo Sikut pada Pin Nomor 10
  ServoLengan.attach(11); // Menempatkan Servo1 Lengan pada Pin Nomor 11 
  ServoCapit.write(15); // Menetapkan Putaran Awal Servo Capit pada Sudut 15 derajat      
  ServoSikut.write(30); // Menetapkan Putaran Awal Servo Sikut pada Sudut 30 derajat
  ServoLengan.write(0); // Menetapkan Putaran Awal Servo Lengan pada Sudut 0 derajat
  delay(100);      
  Serial.begin(9600);
  delay(1000);
}

void loop() {
   digitalWrite(PinLedMerah,HIGH); // Menyalakan Led Merah
   delay(150); // Jeda 150 milidetik agar LDR bisa Membaca Warna Merah dengan Stabil
// Membaca Data Sensor (LDR) :
   Hasil= analogRead(PinSensor);
   HasilMerah=map(Hasil,0,1023,0,255);
   Serial.print(HasilMerah);
   digitalWrite(PinLedMerah,LOW);   
   delay(150);

   digitalWrite(PinLedHijau,HIGH); // Menyalakan Led Hijau
   delay(150); // Jeda 150 milidetik agar LDR bisa Membaca Warna Hijau dengan Stabil
// Membaca Data Sensor (LDR) :
   Hasil= analogRead(PinSensor);
   HasilHijau=map(Hasil,0,1023,0,255); 
   Serial.print(" ");
   Serial.print(HasilHijau);
   digitalWrite(PinLedHijau,LOW);   
   delay(150);

   digitalWrite(PinLedBiru,HIGH); // Menyalakan Led Biru
   delay(150); // Jeda 150 milidetik agar LDR bisa Membaca Warna Biru dengan Stabil
// Membaca Data Sensor (LDR) :
   Hasil= analogRead(PinSensor);
   HasilBiru=map(Hasil,0,1023,0,255); 
   Serial.print(" ");
   Serial.println(HasilBiru);
   digitalWrite(PinLedBiru,LOW); 
   delay(150);

// Membandingkan Warna Hasil Peneraan Sensor dengan Hasil Kalibrasi :

  if(abs(HasilMerah-240)<k && abs(HasilHijau-232)<k && abs(HasilBiru-205)<k){
    Serial.println("WARNA MERAH\n");

    ServoSikut.write(0); // Sikut mengangkat capit
    delay(1000);
    ServoLengan.write(90); // Lengan membawa capit menuju tempat benda
    delay(1000);
    ServoCapit.write(0); // Capit membuka
    delay(1000);
    ServoSikut.write(30); // Sikut membawa capit menuju benda  
    delay(1000);
    ServoCapit.write(15); // Capit memegang benda
    delay(1000);
    ServoSikut.write(0); // Sikut menaikkan capit yang membawa benda
    delay(1000);
    ServoLengan.write(45); // Lengan membawa benda ke tempat Warna Merah
    delay(1000);
    ServoSikut.write(30); // Sikut menurunkan capit pembawa benda menuju tempat benda  
    delay(1000);
    ServoCapit.write(0); // Capit melepas benda
    delay(1000);
    ServoSikut.write(0); // Sikut mengangkat capit kosong
    delay(1000);
    ServoCapit.write(15); // Capit menutup (posisi istirahat)
    delay(1000);
    ServoLengan.write(0); // Lengan menuju posisi istirahat
    delay(1000);
    ServoSikut.write(30); // Sikut menuju posisi istirahat  

    } else

   if(abs(HasilMerah-240)<k && abs(HasilHijau-241)<k && abs(HasilBiru-210)<k){
    Serial.println("WARNA KUNING\n");

    ServoSikut.write(0); // Sikut mengangkat capit
    delay(1000);
    ServoLengan.write(90); // Lengan membawa capit menuju tempat benda
    delay(1000);
    ServoCapit.write(0); // Capit membuka
    delay(1000);
    ServoSikut.write(30); // Sikut membawa capit menuju benda  
    delay(1000);
    ServoCapit.write(15); // Capit memegang benda
    delay(1000);
    ServoSikut.write(0); // Sikut menaikkan capit yang membawa benda
    delay(1000);
    ServoLengan.write(70); // Lengan membawa benda ke tempat Warna Kuning
    delay(1000);
    ServoSikut.write(30); // Sikut menurunkan capit pembawa benda menuju tempat benda  
    delay(1000);
    ServoCapit.write(0); // Capit melepas benda
    delay(1000);
    ServoSikut.write(0); // Sikut mengangkat capit kosong
    delay(1000);
    ServoCapit.write(15); // Capit menutup (posisi istirahat)
    delay(1000);
    ServoLengan.write(0); // Lengan menuju posisi istirahat
    delay(1000);
    ServoSikut.write(30); // Sikut menuju posisi istirahat 

    } else

 if(abs(HasilMerah-232)<k && abs(HasilHijau-238)<k && abs(HasilBiru-208)<k){
    Serial.println("WARNA HIJAU\n");

    ServoSikut.write(0); // Sikut mengangkat capit
    delay(1000);
    ServoLengan.write(90); // Lengan membawa capit menuju tempat benda
    delay(1000);
    ServoCapit.write(0); // Capit membuka
    delay(1000);
    ServoSikut.write(30); // Sikut membawa capit menuju benda  
    delay(1000);
    ServoCapit.write(15); // Capit memegang benda
    delay(1000);
    ServoSikut.write(0); // Sikut menaikkan capit yang membawa benda
    delay(1000);
    ServoLengan.write(110); // Lengan membawa benda ke tempat Warna Hijau
    delay(1000);
    ServoSikut.write(30); // Sikut menurunkan capit pembawa benda menuju tempat benda  
    delay(1000);
    ServoCapit.write(0); // Capit melepas benda
    delay(1000);
    ServoSikut.write(0); // Sikut mengangkat capit kosong
    delay(1000);
    ServoCapit.write(15); // Capit menutup (posisi istirahat)
    delay(1000);
    ServoLengan.write(0); // Lengan menuju posisi istirahat
    delay(1000);
    ServoSikut.write(30); // Sikut menuju posisi istirahat   

    } else

 if(abs(HasilMerah-231)<k && abs(HasilHijau-234)<k && abs(HasilBiru-217)<k){
    Serial.println("WARNA BIRU\n");

    ServoSikut.write(0); // Sikut mengangkat capit
    delay(1000);
    ServoLengan.write(90); // Lengan membawa capit menuju tempat benda
    delay(1000);
    ServoCapit.write(0); // Capit membuka
    delay(1000);
    ServoSikut.write(30); // Sikut membawa capit menuju benda  
    delay(1000);
    ServoCapit.write(15); // Capit memegang benda
    delay(1000);
    ServoSikut.write(0); // Sikut menaikkan capit yang membawa benda
    delay(1000);
    ServoLengan.write(135); // Lengan membawa benda ke tempat Warna Biru
    delay(1000);
    ServoSikut.write(30); // Sikut menurunkan capit pembawa benda menuju tempat benda  
    delay(1000);
    ServoCapit.write(0); // Capit melepas benda
    delay(1000);
    ServoSikut.write(0); // Sikut mengangkat capit kosong
    delay(1000);
    ServoCapit.write(15); // Capit menutup (posisi istirahat)
    delay(1000);
    ServoLengan.write(0); // Lengan menuju posisi istirahat
    delay(1000);
    ServoSikut.write(30); // Sikut menuju posisi istirahat  

    } else

 if(abs(HasilMerah-239)<k && abs(HasilHijau-232)<k && abs(HasilBiru-216)<k){
    Serial.println("WARNA PINK\n");

    ServoSikut.write(0); // Sikut mengangkat capit
    delay(1000);
    ServoLengan.write(90); // Lengan membawa capit menuju tempat benda
    delay(1000);
    ServoCapit.write(0); // Capit membuka
    delay(1000);
    ServoSikut.write(30); // Sikut membawa capit menuju benda  
    delay(1000);
    ServoCapit.write(15); // Capit memegang benda
    delay(1000);
    ServoSikut.write(0); // Sikut menaikkan capit yang membawa benda
    delay(1000);
    ServoLengan.write(160); // Lengan membawa benda ke tempat Warna Pink
    delay(1000);
    ServoSikut.write(30); // Sikut menurunkan capit pembawa benda menuju tempat benda  
    delay(1000);
    ServoCapit.write(0); // Capit melepas benda
    delay(1000);
    ServoSikut.write(0); // Sikut mengangkat capit kosong
    delay(1000);
    ServoCapit.write(15); // Capit menutup (posisi istirahat)
    delay(1000);
    ServoLengan.write(0); // Lengan menuju posisi istirahat
    delay(1000);
    ServoSikut.write(30); // Sikut menuju posisi istirahat

    } else

 if(abs(HasilMerah-240)<k && abs(HasilHijau-241)<k && abs(HasilBiru-224)<k){
    Serial.println("WARNA PUTIH\n");

    ServoSikut.write(0); // Sikut mengangkat capit
    delay(1000);
    ServoLengan.write(90); // Lengan membawa capit menuju tempat benda
    delay(1000);
    ServoCapit.write(0); // Capit membuka
    delay(1000);
    ServoSikut.write(30); // Sikut membawa capit menuju benda  
    delay(1000);
    ServoCapit.write(15); // Capit memegang benda
    delay(1000);
    ServoSikut.write(0); // Sikut menaikkan capit yang membawa benda
    delay(1000);
    ServoLengan.write(180); // Lengan membawa benda ke tempat Warna Putih
    delay(1000);
    ServoSikut.write(30); // Sikut menurunkan capit pembawa benda menuju tempat benda  
    delay(1000);
    ServoCapit.write(0); // Capit melepas benda
    delay(1000);
    ServoSikut.write(0); // Sikut mengangkat capit kosong
    delay(1000);
    ServoCapit.write(15); // Capit menutup (posisi istirahat)
    delay(1000);
    ServoLengan.write(0); // Lengan menuju posisi istirahat
    delay(1000);
    ServoSikut.write(30); // Sikut menuju posisi istirahat

    } else

    Serial.println("Warna Tidak Dikenal\n");    
   
  delay (2000);
}

Upload Program Robot Penyortir Warna

Upload Program Robot Penyortir Warna caranya masih sama dengan Upload Program Kalibrasi Sensor Warna. Apabila Rangkaian (Gambar 16) masih terhubung dengan Komputer, pastikan bahwa Board yang terpilih adalah Arduino Duemilanove w/ATmega328 dan Serial Port sudah sesuai dengan USB Port Komputer yang terhubung ke rangkaian, misaknya COM6.

·        Buka Program Arduino
·        Tulis Program Robot Penyortir Warna atau Copy Past Program yang sudah ada di halaman ini, atau dibuat sendiri sesuai pemikiran pembaca.
·        Klik Tombol Upload.
Apabila proses upload berhasil, Robot Penyartir Warna sudah terprogram.
·        Lepas kabel-kabel penghubung Board Arduino Duemilanove dengan Arduino Minimalis on Breadboard (Gambar 16).
·        Pasang kembali Breadboard Power Supply 3V/5V pada Arduino Minimalis on Breadboard.
·        Hubungkan Breadboard Power Supply 3V/5V dengan Battery 9V melalui DC Jack Power Connector seperti Gambar berikut

Gambar 24 Arduino Minimalis on Breadboard
yang terhubung dengan Battery 9V, Servo dan Sensor
  
Catatan : Proyek Arduino ini juga bisa menggunakan Arduino Uno dengan cara mengganti Board Arduino Duemilanove dengan Board Arduino Uno, pada Program Arduino pilih Board Arduino Uno pada saat melakukan Burning Bootloader dan Upload Program.

Selamat mencoba.



168 komentar:

  1. makasih ya mas, sangat membantu sekali untuk tugas kuliah saya :D
    terimakasih banyak.

    BalasHapus
  2. Syukurlah kalau begitu. Saya tunggu karya-karyanya.

    BalasHapus
  3. nice info banget gan..

    Arduino Duemilanove ini bisa dipake juga ga klo buat ngegerakin robot pke ponsel android ??

    BalasHapus
  4. Terimakasih Mas Andre Raditya. Maaf baru sempat merespon.
    Pada prinsipnya Duemilanove juga bisa menggerakkan robot yang dikendalikan menggunakan ponsel android versi 2 keatas. Tentunya harus menyertakan beberapa perangkat keras dan lunak pendukungnya.
    Singkat kata, info dari situs dibawah ini mungkin bermanfaat :
    1. http://playground.arduino.cc/Code/HTCDesire
    2. Youtube : http://www.youtube.com/watch?v=1FJJsXIi-wQ&feature=youtu.be
    Demikian, mudah-mudahan info ini bermanfaat.

    BalasHapus
    Balasan
    1. Mas Zain , itu cara kerja sensor warnanya dalam kalibrasi warna itu gimana ?
      Trus yang map(0,1023,0,255) itu map apa mas ?

      Hapus
    2. Terimakasih Mbak Siska atas pertanyaannya.

      Cara kerja sensor warna dalam kalibrasi adalah : Objek berwarna memantulkan cahaya tertentu dari RGB LED.

      Selanjutnya pantulan cahaya ditangkap oleh sensor (LDR).
      Untuk dapat dijadikan referensi (masuk ke dalam rumus perbandingan), pantulan cahaya harus diubah ke bentuk kode melalui perintah map(Hasil,0,1023,0,255) dimana :

      0,1023 (0 = nilai maksimum LDR-terang dan 1023 = nilai minimum LDR-gelap);

      0,255 (0 = nilai minimum warna RGB dan 255 = nilai maksimum warna RGB).

      Sehingga kode warna untuk RGB yang dihasilkan masing-masing berkisar antara 0 dan 255 (lihat Tabel Hasil Kalibrasi).

      Dengan demikian, tiap warna objek akan memberikan kombinasi kode RGB tertentu.

      Misalnya untuk warna MERAH, kombinasi kode RGB-nya adalah 240 232 205 (lihat Tabel Hasil Kalibrasi).

      Jadi dalam prakteknya apabila objek memantulkan warna dengan kombinasi kode RGB mendekati nilai 240 232 205, maka robot akan memindahkan objek ke kotak warna MERAH.

      Sebagai catatan :

      - Untuk membuktikan munculnya angka 0,1023 silakan membangun rangkaian arduino dengan sensor LDR seperti yang ada di http://communityofrobots.com/tutorial/kawal/how-use-ldr-arduino,

      - Untuk membuktikan munculnya angka 0,255 silakan lihat di Program Editor Gambar atau Foto misalnya Program PAINT di Windows, klik menu Edit Colors. Pada Red, Green, Blue silakan diisi angka 0-255,

      - Untuk memahami kalibrasi silakan kunjungi http://arduino.cc/en/Tutorial/Calibration

      Demikian, mudah-mudahan bisa dimengerti.

      Hapus
    3. Bisa minta emailnya mas, mungkin nanti saya mau tanya2 tentang sensor warna mas.

      email saya : madem_made@yahoo.com

      Hapus
    4. Mbak Siska, bukannya saya pelit kasih email, akan tetapi, saya takut kalau blog ini jadi sepi pengunjung karena orang lebih suka diskusi via email. Padahal, blog ini dibuat untuk sharing pengetahuan/kreatifitas dari para pengunjung yang bertanya atau memberi masukan positif serta berupaya menarik pengunjung sebanyak-banyaknya melalui cara yang dapat dipertanggungjawabkan. Untuk ini saya mohon Mbak Siska memakluminya. Tak lupa saya ucapkan terimakasih atas kunjungannya terhadap blog ini untuk Mbak Siska dan teman-teman semua. Salam,,,,

      Hapus
    5. Mas zain mau tanya kalo arm robot pemilah warna menggunakan metode logika fuzzy control.itu fuzy nya apa dengan apa ya.terus out putnya apa mas.terima kasih.

      Hapus
  5. Terima kasih mas, jadi menambah wawasan dan gambaran untuk berinovasi

    BalasHapus
    Balasan
    1. Terimakasih kembali Mas Dede Sukendar, saya tunggu inovasinya.

      Hapus
  6. Mas Zain, itu cara kerja program utamanya gimana ya ?

    BalasHapus
    Balasan
    1. Terimakasih atas pertanyaannya.

      Jawaban saya mulai dari : void loop() (lihat list programnya)
      - LED merah memancarkan cahaya, dipantulkan oleh benda berwarna, pantulan cahaya ditangkap oleh sensor (LDR), hasilnya berupa kode (angka) antara 0 dan 255.
      - Berikutnya LED Hijau memancarkan cahaya, dipantulkan oleh benda berwarna, pantulan cahaya ditangkap oleh sensor (LDR), hasilnya berupa kode (angka) antara 0 dan 255.
      - Beikutnya LED Biru memancarkan cahaya, dipantulkan oleh benda berwarna, pantulan cahaya ditangkap oleh sensor (LDR), hasilnya berupa kode (angka) antara 0 dan 255.

      Hasil keseluruhan berupa kode kombinasi tiga warna yaitu (Merah,Hijau,Biru) misalnya = (241,234,203).

      Hasil tersebut dibandingkan dengan kode kombinasi warna pembanding (Merah, Hijau, Biru) dari hasil kalibrasi, misalnya untuk warna merah (240,232,205), untuk warna kuning (240,241,210), dan seterusnya (lihat tabel hasil kalibrasi).

      Setelah diperbandingkan diperoleh kesimpulan, misalnya benda yang ditera oleh sensor (LDR) adalah berwarna merah, maka servo sikut mengangkat capit, servo lengan bergerak (90 derajat) menuju benda (ditempat sensor), servo capit membuka, servo sikut menunduk menuju benda, servo capit memegang benda, servo sikut menaikkan capit membawa benda, servo lengan bergerak (45 derajat) menuju tempat benda berwarna merah, servo sikut menunduk, servo capit melepas benda, servo sikut mengangkat capit kosong, servo capit menutup, servo lengan bergerak ke 0 derajat, servo sikut menunduk ke posisi istirahat.
      Demikian juga untuk warna yang lain.(Program sudah diberi keterangan cukup jelas, Silakan dibaca dengan teliti).

      Demikian penjelasan singkat saya, mudah-mudahan bisa dimengerti.

      Hapus
    2. mas itu 0 sampe 255 karena pake adc 8 bit ya ?

      kalau misal pake adc 12 bit berarti 0 sampe 4095 ya?

      Hapus
    3. Terimakasih Atas pertanyaannya.

      Bisa juga ditafsirkan seperti itu, hanya saja ADC yang dimaksud adalah pemrogramannya (yang berhubungan dengan rentang kemampuan sensor dalam menera sejumlah macam warna) dan bukan rangkaian elektronik tambahan yang menggunakan IC ADC. Sinyal dari LDR langsung masuk ke pin 23 ATmega328 (ADC0/PCINT8).
      Demikian respon saya, mudah-mudahan ini jadi wacana untuk meningkatkan kemampuan robot mengenali warna dengan lebih banyak ragamnya.

      Hapus
  7. Itu arduino nya harus duemilanove atau bisa yg lain mas , seperti arduino due ?

    BalasHapus
    Balasan
    1. Terimakasih Mbak Siska atas pertanyaannya.

      Arduino-nya tidak harus Duemilanove (Due), Arduino Uno juga bisa, yang penting pada saat Burning Bootloader dan Upload Program, pada Program Arduino-nya pilih Board yang sesuai dengan Arduino yang kita gunakan, misalnya kita menggunakan Arduino Duemilanove (Due), maka pada Program Arduino kita pilih Arduino Duemilanove w/ATmega328. Jika kita menggunakan Arduino Uno, maka pada Program Arduino kita pilih Arduino Uno.

      Demikian penjelasan singkat saya, mudah-mudahan bisa dimengerti.

      Hapus
    2. Kelebihan menggunakan arduino itu kenapa mas ? jika di bandingkan dengan avr atmega 32 gitu ?

      Hapus
    3. Terimakasih Mbak Siska atas pertanyaannya. Maaf terlambat merespon karena di komputer ada gangguan virus.

      Saya akan jawab singkat saja mengenai Arduino.

      Kelebihan Arduino :
      Dari sisi Hardware : Open source, bisa di-cloning, atau dimodifikasi tanpa melanggar hak patent, dilengkapi dengan USB sehingga bisa berkomunikasi dengan komputer yang ada saat ini, diperkaya dengan shields (perangkat I/O siap pakai)
      Dari sisi software : didukung software Arduino IDE open source gratis.
      Dari sisi pemrograman : Menggunakan bahasa C/C++ yang sudah dipermudah teknik pemrogramannya, dengan disediakannya library-library dan fungsi-fungsi standar yang sudah ada didalam program Arduino IDE dan ada pula yang bisa didownload secara gratis di website Arduino, tidak dibutuhkan perangkat ISP/ASP downloader karena sudah dilengkapi bootloader, kecuali kalau kita membeli chip AVR Atmega 328 yang masih kosong.
      Sehingga Arduino ini lebih cocok dan tepat terutama untuk pemula.

      Kekurangan Arduino:
      Harga relatif mahal apabila kita membeli Arduino dan shields yang asli. Akan tetapi apabila kita menguasai elektronika, maka kita bisa merangkai Arduino dan perangkat I/O sendiri sesuai kebutuhan, sehingga harga bisa ditekan lebih murah.
      Ruang yang tersedia di memori Atmega328 berkurang karena sebagian ditempati oleh bootloader. Untuk ini disarankan menggunakan bootloader Arduino Uno yang ukurannya setengah lebih kecil dari Duemilanove, sehingga ruang untuk program tersedia lebih longgar.
      Contohnya Robot Penyortir Warna ini dengan rangkaian arduino dan sensor dibikin sendiri dengan meniadakan komponen-komponen arduino yang tidak biperlukan sehingga bisa membuat rangkaian yang berukuran lebih keci, praktis, dan murah.

      Kelebihan AVR :
      Bagi yang mahir elektronika dan pemrograman AVR, penggunaan AVR lebih praktis, murah, karena pengontrol I/O, memory sudah berada dalam satu chip, sehingga ukuran lebih kecil dan biayanya lebih murah.
      Bahasa pemrogramannya pun bisa menggunakan Basic dengan kompiler Bascom AVR, atau bahasa C dengan kompiler Codevision AVR.
      Kekurangan AVR :
      Bagi pemula ada kesulitan mengenai bahasa pemrograman, disain, dan pembuatan rangkaian elektronik, diperlukan bantuan perangkat ISP/ASP downloader untuk mengisi program ke chip.
      Demikian jawaban singkat saya, selebihnya ada di materi kuliah.

      Hapus
  8. mas itu resistor dari LDR harus 33K ya ?

    saya coba pakai resistor 330, kok di serial monitor angkanya tidak sampai 200 an, hanya sekitar 20 an saja..

    misal nya 24 5 18 gitu.

    BalasHapus
    Balasan
    1. Terimakasih atas pertanyaannya.

      Maaf baru sempat merespon. Untuk Fixed Resistor sebagai pembanding tidak harus 33 K. beberapa rangkaian sensor LDR dengan Arduino menggunakan Fixed Resistor 10 K. Hal ini tergantung dari karakteristik resistansi LDR yang mana dalam rangkaian sensor harus mempunyai rentang resistansi yang lebih lebar. Disamping itu sensor tersebut ditujukan untuk bekerja di lingkungan dengan intensitas cahaya yang rendah (gelap), sedang, atau tinggi (sangat terang).
      Robot ini dirancang untuk bekerja dengan efektif di ruangan dengan intensitas cahaya sedang, dan LDR hanya menerima cahaya dari LED RGB yang tergolong berintensitas rendah. Dengan demikian, LDR yang mendapat cahaya dengan intensitas rendah Resistansinya tentu tinggi. Untuk itulah saya menggunakan Fixed Resistor Pembanding dengan Resistansi yang tinggi pula yaitu 33 K.

      Untuk kasus percobaan dengan Fixed Resistor Pembanding 330 ohm (resistansi kecil) nilai baca analognya 24, 5, 18. Kondisi ini disebabkan mungkin LDR yang digunakan resistansinya kecil, atau cahaya yang mengenai LDR sangat terang (tegangan arduino konstan 5V),

      Coba gunakan cahaya dengan intensitas rendah (gelap), apakah nilai baca analognya NAIK.
      Atau gunakan Fixed Resistor 10 K atau 33 K, ganti LDR, tempatkan rangkaian di tempat gelap, apakah nilai baca analognya bisa mendekati 1023. Kemudian beri cahaya sangat terang, apakah nilai baca analognya turun mendekati 0.

      Untuk lebih jelasnya, berikut ini saya cantumkan referensinya :
      http://bildr.org/2012/11/photoresistor-arduino/

      Demikian penjelasan saya, semoga bermanfaat.

      Hapus
  9. Mas zain,
    itu warna primernya seperti warna biru kok kode RGB nya 234 231 217 ?

    Kalau di logika kan berarti seharusnya warna biru itu nilai Blue yang paling tinggi..
    kalau warna merah berarti nilai Red yang paling tinggi..
    kalau warna hijau berarti nilai Green yang tinggi..

    Kalau nilai pada warna primernya hanya beda tipis gitu penjelasanya gimana mas ?

    BalasHapus
    Balasan
    1. Terimakasih banyak Mbak Siska atas partisipasinya memberi koreksi positif terhadap tulisan ini, dan maaf baru sempat merespon.

      Jadi, Logika Mbak Siska itu ada benarnya dengan berprinsip bahwa :
      • Objek berwarna merah akan lebih banyak memantulkan cahaya warna merah
      • Objek berwarna hijau akan lebih banyak memantulkan cahaya warna hijau
      • Objek berwarna biru akan lebih banyak memantulkan cahaya warna biru

      Akan tetapi yang harus diingat bahwa robot ini menggunakan sensor LDR yang mempunyai nilai resistansi “berbanding terbalik” dengan nilai intensitas pantulan warna yang mengenainya, Sehingga :
      - Pantulan Cahaya Merah dari Objek berwarna Merah, memberikan nilai resistansi LDR lebih rendah dibanding pantulan cahaya Hijau dan Biru
      - Pantulan Cahaya Hijau dari Objek berwarna Hijau, memberikan nilai resistansi LDR lebih rendah dibanding pantulan cahaya Merah dan Biru
      - Pantulan Cahaya Biru dari Objek berwarna Biru, memberikan nilai resistansi LDR lebih rendah dibanding pantulan cahaya Merah dan Hijau
      Catatan : Resistansi LDR 0-1023 dikonversi ke kode RGB masing-masing 0-255.

      Sensor warna ini sangat sederhana sehingga secara logika sebenarnya hanya mampu membedakan 5 warna tertentu saja, yaitu : Merah, Hijau, Biru, Putih, dan Hitam.

      Kembali ke robot ini. Apabila dilihat dari kode-kode RGB yang dihasilkan, sungguh tidak sesuai dengan logika di atas. Terlebih warna yang digunakan ada yang di luar logika, yaitu warna Pink dan Kuning, sehingga total ada 6 warna. Untungnya sensor warna ini masih bisa menghasilkan kode RGB spesifik untuk keenam warna tersebut, sehingga robot ini masih bisa bekerja dengan baik.
      Disini lebih menekankan bahwa setiap warna harus mempunyai kode RGB spesifik yang berbeda satu dengan lainnya (meskipun tidak sesuai dengan logika yang ada).

      Adapun penyebab ketidaksesuaian dengan logika tersebut antara lain :
      - rangkaian sensor yang masih sederhana
      - kertas warna sebagai objek berwarna yang ditera belum mencerminkan warna dasar yang sebenarnya.

      Kedua hal tersebutlah yang harus diperbaiki untuk pengenbangan kedepan. Apalagi untuk konsumsi akademis, memang soal sensor warna harus dilakukan pengujian sedemikian sehingga sesuai dengan logika ilmiyah yang ada.

      Demikian, semoga penjelasan ini bisa dimengerti dan bermanfaat.

      Hapus
  10. Apakah semua jenis arduino bisa dgunakan utk proyek ini? Sorry awam

    BalasHapus
    Balasan
    1. Terimakasih Mas Aryo Adhi Condro atas pertanyaannya.
      Pada prinsipnya semua arduino bisa digunakan untuk proyek ini, akan tetapi yang pernah saya coba untuk proyek ini dan jalan dengan baik yaitu Arduino Duemilanove dan Arduino Uno.

      Hapus
  11. wah keren nih ,, sangat bermanfaat buat referensi tugas saya ,
    dan maaf mas mau nanya kira2 dengan proyek ini menghabiskan dana berapa?

    BalasHapus
    Balasan
    1. Terimakasih Mas Rangga Putra atas komentar dan pertanyaannya.
      Proyek ini menghabiskan dana sekitar Rp. 750.000,- (tidak termasuk peralatan pendukung).
      Demikian, selamat mencoba, semoga berhasil.

      Hapus
    2. Komentar ini telah dihapus oleh pengarang.

      Hapus
    3. Terimakasih Mas Angga Saputra atas pertanyaannya.

      Pertanyaan Mas Angga Saputra hampir mirip dengan pertanyaan-pertanyaan para penanya terdahulu. Jadi, saya persilakan Mas Angga Saputra untuk membaca jawabannya :
      - Jawaban tertanggal 4 September 2013 12.41 atas pertanyaan siska 2 September 2013 01.47
      - Jawaban tertanggal 29 September 2013 02.15 atas pertanyaan Anonim 27 September 2013 07.50
      - Dan jawaban-jawaban lainnya.

      Tidak perlu menentukan koordinat untuk posisi tempat menaruh benda berwarna, akan tetapi cukup dengan menentukan derajat (sudut putar) servo lengan robot (untuk ini silakan pelajari list programnya).

      Demikian penjelasan saya, semoga bisa dimengerti dan bermanfaat.

      Hapus
    4. mas mau nanya lgi dong,, knp yah pada saat burn bootloader gagal ... yg muncul pesan avrdude: stk500_getsync(): not in sync: resp=0x00
      mohon pencerahannya?

      Hapus
    5. Terimakasih Mas Angga Saputra atas pertanyaannya.
      Ada kemungkinan masalah komunikasi antara komputer dan Arduino. Silakan periksa kembali rangkaian seteliti mungkin, lepas dan sambung kembali kabel usb dari dan ke komputer dan arduino, pastikan pada Tools - klik Board - pilih Arduino Duemilanove w/ATmega328, pilih serial port yang tepat melalui menu Tools - Klik Serial Port - pilih Com yang tepat, dan lanjutkan perintah burning sesuai tutor diatas.
      Demikian, selamat mencoba, semoga berhasil.

      Hapus
  12. Mas,
    saya mau nanya, fungsi yg dipakai di arduino untuk mengambil nilai minimum apa y mas?
    misalnya saya punya variabel a,b,c,d,e; nantinya masing2 variabel saya masukkan nilai, nah variabel dg nilai paling kecil yg dikeluarkan, gmn caranya mas?
    terima kasih sebelumnya ya mas.

    BalasHapus
    Balasan
    1. Terimakasih Mas Saha Farza atas pertanyaannya.

      Mungkin yang dimaksud Mas Saha Farza adalah fungsi Statistik. Seperti diketahui, Arduino di situsnya sudah menyediakan referensi pemrograman untuk beberapa hal yang bisa dilakukan dengan arduino. Mas Saha Farza bisa mempelajarinya di alamat berikut :
      http://arduino.cc/en/Reference/HomePage

      Untuk Statistik, Mas Saha Farza bisa pelajari di alamat berikut :
      http://playground.arduino.cc/Main/Statistics
      Saya kira jawaban untuk pertanyaan Mas Saha Farza beserta pengembangannya akan dapat ditemukan di alamat tersebut.

      Demikian jawaban saya, selamat mencoba, semoga bermanfaat dan berhasil.

      Hapus
    2. Terima kasih atas jawabannya mas Zain M.

      sebenarnya saya mau buat program dengan methode fuzzy logic, sekarang kendala saya di menentukan derajat anggota fuzzy-nya, misal:

      alpha 1 =min(ua,ub,uc,ud,ue);
      nantinya nilai alpha yg keluar itu adalah salah satu nilai dari 5 variabel didalam kurung itu yg bernilai paling kecil,gt mas.
      mf kalau saya bikin repot y mas, :)

      Hapus
    3. Terimakasih Mas Saha Farza atas pertanyaannya.
      Mohon maaf Mas Saha Farza, saya belum bisa memberikan solusi tepat untuk pertanyaan Mas Saha Farza, karena untuk Fuzzy logic ini saya masih sebatas mempelajari teori, dan saya masih sedikit mempelajari fuzzy logic on Arduino, dan belum pernah mempraktekkannya, meskipun fuzzy logic ini sangat penting untuk menciptakan kecerdasan buatan yang sudah diaplikasikan ke robot, kendaraan dan peralatan rumahtangga.
      Sumber bacaan saya untuk fuzzy arduino :
      http://zerokol.com/product/51e93616e84c5571b7000018/3/en
      https://github.com/zerokol/eFLL
      dan artikel-artikel lain pendukungnya.
      Demikian penjelasan saya, harap maklum.

      Hapus
  13. pak.. saya mau tanya..
    bagaimana cara membuat grippernya pak ? bolehkah di share ke saya.
    apakah itu memakai 2 micro servo ?

    BalasHapus
    Balasan
    1. Terimakasih Mbak Citta Anindya atas pertanyaannya.
      Sebenarnya saya ingin share bukan hanya ke Mbak Citta Anindya, akan tetapi ke semua pengunjung blog ini, akan tetapi hingga saat ini saya belum sempat membuat gambar teknik yang jelas dan gamblang sehingga mudah difahami oleh semua kalangan yang ingin mengetahuinya.
      Ini juga disarankan oleh Mas Tirto Wijarso, sebetulnya ini bisa terbagi menjadi beberapa tutorial, termasuk grippernya harus dibahas secara jelas di tutor tersendiri.
      Untuk sementara tidak ada salahnya apabila Mbak Citta Anindya mencermati dan mempelajari Gambar 11 di tutor ini untuk membuat grippernya.
      Gripper mamakai 2 microservo, satu microservo untuk membuka dan menutup gripper, satu microservo untuk naik turun gripper.
      Demikian penjelasan saya, harap maklum, selamat mencoba, semoga berhasil.

      Hapus
  14. Terima kasih Pak , luar biasa sekali ,saya akan coba, sebetulnya ini bisa terbagi jadi beberapa tutorial , oya jika robot dipindahkan ke ruangan lain yang beda intensitas cahayanya apakah akan merubah pergerakannya Pak ? mengingat sensornya LDR.
    Sebenarnya tidak ada salahnya jika merinci ukuran dan proses pembuatan robotnya Pak , karena biayanya lumayan juga , atau dibuat buku lebih baik lagi.

    BalasHapus
    Balasan
    1. Terimakasih Mas Tirto Wijarso atas komentar, pertanyaan dan sarannya.

      Untuk diruang berbeda intensitas cahaya, tentu ada perbedaan kinerja robotnya. Akan tetapi dengan penempatan sensor yang sangat tepat akan dapat meminimalisir perbedaan tersebut. Contohnya bisa dilihat alamat youtube berikut :

      1. Untuk lingkungan terang (siang),
      https://www.youtube.com/watch?v=0o75EwwdLh0&feature=c4-overview&list=UU35da9Rln5gh6nRhbjKvd0g

      2. Untuk lingkungan gelap (malam)
      https://www.youtube.com/watch?v=BxlGLDmpQsE&feature=c4-overview&list=UU35da9Rln5gh6nRhbjKvd0g

      Saran untuk merinci ukuran dan proses pembuatannya serta dibuat buku, ini adalah saran yang sangat baik, semoga saya bisa mewujudkannya.

      Demikian respon dari saya, selamat mencoba, semoga berhasil.

      Hapus
  15. pak Zain, bagus skali karyanya pak..
    pak, saya mau tanya,
    spek servo standarnya dan 2 micro servonya apa ya pak..
    biar gak salah ngerakit nanti, terima kasih

    BalasHapus
    Balasan
    1. Terimakasih banyak Mas Vikry atas komentar dan pertanyaannya.

      Servo Standar yang saya gunakan adalah HS-311, spesifikasinya bisa dilihat di :
      http://www.servodatabase.com/servo/hitec/hs-311

      Dua Micro Servo yang saya gunakan adalah TowerPro SG91R, spesifikasinya bisa dilihat di :
      http://www.servodatabase.com/servo/towerpro/sg91r

      Sebagai tambahan, selama proses perakitan dan percobaan gunakan powersupply yang besar dayanya memadai dengan spesifikasi : tegangan +5V stabil dan ampere 4A atau lebih, agar robot bisa bekerja sesuai teori yang diuraikan di atas. Apabila rangkaian robot sudah menunjukkan unjuk kerja yang baik sesuai uraian di atas, rapikan rangkaian, gunakan breadboard/PCB, kabel, kawat berdaya hantar baik dengan ukuran sependek mungkin, sehingga besar ampere yang dibutuhkan bisa ditekan sekeci-kecilnya (hemat listrik),

      Demikian penjelasan saya, selamat mencoba, semoga berhasil.

      Hapus
    2. terima kasih pak,
      pak 2 plastik gearnya tu untuk di bagian mana ya, lengan, sikut, atau capit ya..
      untuk LED RGB nya ada spek khusus atau yang umum,
      mohon penjelasannya pak, trima kasih..

      Hapus
    3. ohh, trimakasih pak..
      mau tanya lagi pak, apa beda standar servo dan micro servo pak?

      apakah kita harus pake micro servo untuk bagian sikut dan capitnya ?
      kalo smua pake standar servo bisa kan pak,

      pak, sya punya servo Hitec HS-322HD dan Hitec HS-225BB,
      saya lihat spek antara HS-311 dengan HS-322HD perbandingannya tidak terlalu jauh bahkan hampir sama, itu sudah saya pake di bagian lengan dan rencananya saya akan pake di bagian sikut. kemudian yang servo Hitec HS-225BB dengan body yang lebih kecil saya rencana akan pake di bagian capit, bisa kah pak?

      terima kasih atas penjelasannya pak,

      Hapus
    4. Terimakasi Mas Vikry atas pertanyaannya.

      Untuk mengetahui perbedaan standard servo dan micro servo, alangkah baiknya Mas Vikry mempelajarinya di :

      http://www.servocity.com/html/hitec_servos.html

      Dari situs ini bisa disimpulkan, bahwa perbedaannya terletak pada ukuran "panjang x lebar x tinggi" dan tentu saja berbanding lurus dengan "beratnya".

      Untuk mendisain tangan robot, tentu harus mempertimbangkan ukuran volume, berat dan kekuatan servo-nya.
      - Servo untuk Capit atau jari, tentu bentuknya harus lebih kecil dan lebih ringan daripada servo untuk sikut (untuk ini sebaiknya gunakan nano servo)
      - Servo untuk sikut tentu bentuknya harus lebih kecil dan lebih ringan daripada servo untuk lengan, dan lebih kuat daripada servo untuk capit (untuk ini sebaiknya gunakan micro servo)
      - Servo untuk lengan harus lebih kuat dan kokoh daripada servo untuk sikut, karena harus mampu menopang dan menggerakkan tangan, servo sikut, capit dan servo capit (untuk ini sebaiknya gunakan standard servo)
      Dari sinilah dapat diperoleh bentuk tangan robot yang ideal, proporsional, gerakannya lebih lincah, tidak boros listrik, dan biaya lebih murah.

      Catatan : kombinasi ukuran dan kekuatan servo yang akan digunakan sangan bergantung pada "besar dan beratnya tangan yang akan dibuat".

      Untuk servo HS-322HD dan HS-225BB saya belum pernah menggunakannya. Akan tetapi yang penting selain memenuhi persyaratan kombinasi ukuran dan kekuatan tersebut, juga kecepatan respon terhadap perintah serta kemampuan gerak dalam berbagai sudut (dalam kisaran 0-180 derajat) dan dua arah berlawanan. Kalau sudah bisa memenuhi kriteria tersebut, ya tentu saja bisa digunakan, akan tetapi kalau tidak memenuhi persyaratan tersebut, perlu dipertimbangkan penggunaan tipe servo yang lain.

      Demikian penjelasan saya, semoga bermanfaat, selamat mencoba, semoga berhasil.

      Hapus
    5. Ralat untuk jawaban Mas Vikry 5 Februari 2014 10.19

      Dua Plastic gear untuk bagian capit (lihar Gambar 11 bagian kanan atas dan bawah), "bisa" dibeli di toko elektronik suku cadang Tape Recorder dan VCD/DVD Player.

      Untuk LED RGB spek khususnya Common "Cathode". Selengkapnya lihat di :

      http://www.geraicerdas.com/led-rgb-terkontrol

      Demikian ralat dari saya, semoga tidak terjadi kesalahan selama mempraktekkannya.

      Hapus
    6. terima kasih pak, mau tanya banyak lagi nih
      1. apakah kita bisa memakai ardino uno sbgai pengganti duemilanove?
      jika menggunakan arduino uno posisi pin2 untuk rangkaiannya berubah pak?

      2. dalam burnig boatloadernya atmeganya hrus dilepas dan ditaruh di breadboard pak?
      dalam burning arduino mendapat tegangan 5 volt ya pak,
      3. maaf pak biar saya lebih jelas lagi, 2 buah resistor yang dipakai untuk sensor itu nilainya brapa-brapa ya,
      terus ada 1 komponen yang didepan kapsitor itu apa ya pak?

      Hapus
    7. Terimakasih Mas Vikry atas pertanyaannya.
      Mohon maaf baru sempat direspon karena masih fokus pada pekerjaan.
      Langsung saya jawab pertanyaannya :
      1. Bisa, yang perlu diperhatikan pada saat melakukan Burning Bootloader dan Upload Program, pilihan arduinonya disesuaikan dengan arduino yang digunakan. Posisi pin-pin juga tetap sama.
      2. Tidak boleh dilepas, ATmega328 yang masih kosong dipasang di Breadboard. Ya, Arduino mendapat tegangan 5V.
      3. Resistor 330 ohm dan 33K. Komponen depan kapasitor adalah Crystal Oscilator 16 MHz.
      Demikian penjelasan saya, semoga bermanfaat.

      Hapus
  16. Selamat malam pak, saya masih sedikit belajar dengan arduino. kalau saya sudah melakukan burning bootloader ke ic micro atmega 328, apakah kalau saya mengisikan program yang nantinya saya buat atmega 328 berdiri sendiri sama dengan mengisikan pada board arduino untuk penulisan listing programnya.

    BalasHapus
    Balasan
    1. Terimakasih banyak Mas Agus atas pertanyaannya.

      Ya, sama dengan mengisikan program pada board arduino, asalkan atmega 328 berada dalam rangkaian yang secara prinsip sama dengan rangkaian arduino.
      Demikian penjelasan saya, selamat mencoba, semoga berhasil.

      Hapus
    2. mas, maaf untuk gearnya itu dibawah pencaoit ya? karna aqu masih bingung...mohon pencerahannya

      Hapus
    3. Terimakasih Mas Dede Sukindar atas pertanyaannya.
      Posisi Gear ada dibawah pencapit dan masing-masing gear menyatu dengan pencapit (kiri dan kanan). Kedua gear saling bersinggungan sehingga apabila gear sebelah kiri berputar berlawanan arah jarum jam, maka gear sebelah kanan berputar searah jarum jam, berarti capit membuka. Demikian pula sebaliknya gear sebelah kiri berputar searah jarum jam, maka gear sebelah kanan berputar berlawanan arah jarum jam, berarti capit menutup. Silakan Zoom Gambar 11.
      Demikian penjelasan saya, semoga bisa dimengerti.

      Hapus
  17. error: expected unqualified-id before 'if'
    error: expected unqualified-id before 'else'
    error: expected constructor, destructor, or type conversion before '(' token
    error: expected declaration before '}' token
    Nah, itu knp mas? pas mau tak upload ada error begituan. Apa scpitnya Duo ma Uno beda? Makasih :)

    BalasHapus
    Balasan
    1. Terimakasih Mas Panglima Lidah atas pertanyaannya.
      Script untuk Uno dan Due sama, yang berbeda hanya pilihan arduinonya pada saat melakukan Burning Bootloader dan Upload Program.
      Rupanya masalahnya sudah bisa diatasi sendiri.
      Demikian penjelasan yang bisa saya tambahkan. Semoga bermanfaat.

      Hapus
  18. mas, yang kemarin sudah terselesaikan masalahnya...
    la sekarang, saya mau tanya lagi mas. Kok hasil RGB saya itu kok jauh-jauh ya mas? kalau sampeyan kan misalnya R: 241, 240, 240, 241, 239..... kan Rednya deke-deket. La punyaku itu jaraknya besar-besar. Misal R: 225, 224, 198, 200, 201, 211.... itu kenapa mas? maaksih

    BalasHapus
    Balasan
    1. Terimakasih Mas Panglima Lidah atas pertanyaannya

      Adanya perbedaan yang cukup jauh tersebut disebabkan oleh sensor-nya. Berarti sensornya masih terpengaruh oleh kondisi cahaya di sekitarnya.

      Untuk mengatasinya, sensor harus berada pada posisi yang terisolir dari cahaya disekitarnya, sehingga nantinya robot akan bekerja dengan baik pada kondisi terang maupun gelap.

      Contoh dalam keadaan terang (siang) bisa dilihat di :
      https://www.youtube.com/watch?v=0o75EwwdLh0&list=UU35da9Rln5gh6nRhbjKvd0g

      Contoh dalam keadaan gelap (malam) bisa dilihat di :
      https://www.youtube.com/watch?v=BxlGLDmpQsE&list=UU35da9Rln5gh6nRhbjKvd0g

      Demikian penjelasan saya, selamat mencoba, semoga berhasil.

      Hapus
  19. Mas mw nanya mas, cara bikin capit nya itu sendiri gmna ya mas?, servo nano type apa yg cocok dipakai yg sistem kerjanya memang mencapit benda mas?, soalnya bingung membuat capitnya itu mas,maklum newby mash, mohon pencerahannya mas :)

    BalasHapus
    Balasan
    1. Terimakasih Mas Dedet Masri Yuni atas pertanyaannya.
      Cara bikin capit untuk robot ini ya seperti yang ditunjukkan di Gambar 11, mohon maaf saya tidak sempat menjelaskan secara rinci dan juga tidak sempat membuat gambarnya per bagian capitnya. Namun dengan cara mencermati gambar 11 (di zoom) saya harap Mas Dedet Masri Yuni bisa mengintepretasikannya sendiri. Kalau butuh banyak inspirasi tentang membuat gripper, tidak usah bingung, silakan banyak baca di google dan lihat di youtube, misalnya di :
      http://www.youtube.com/watch?v=KyW4L_oIBZY
      http://www.youtube.com/watch?v=1o4gk7sClLQ
      http://www.youtube.com/watch?v=XoFUd_nKHck
      dan lain-lain.
      Untuk servo nano tipenya ada macam-macam, yang penting disesuaikan dengan dana yang ada, kekuatan, dan kinerjanya.
      Kalau misalnya dana terbatas ya pakai yang analog (lebih murah dan tidak boros listrik).
      Servo nano bisa dibeli di toko aeromodeling online atau yang terdekat.
      Demikian yang dapat saya sampaikan, semoga bermanfaat.

      Hapus
  20. Terima kasih mas.....
    saya mau tanya lagi mas, saya itu nda pake power supply. la kalau begitu, berarti LDR saya dicolokin dimana mas? yang pertama kn A0, GND, lalu apa pakai Vin?

    BalasHapus
    Balasan
    1. Terimakasih kembali Mas Panglima Lidah,
      Kalau menggunakan listrik langsung dari Arduino, maka kabel merah LDR disambungkan ke 5V arduino, kabel hitam LDR disambungkan ke GND arduino, dan kabel kuning LDR disambungkan ke A0 (Gambar 12).
      Catatan : sumber tenaga listrik dari Arduino tidak mampu menggerakkan 2 servo standard sekaligus. Untuk itu diperlukan sumber tenaga listrik tambahan.
      Untuk menambah wawasan tentang dasar-dasat Arduino, silakan download ebook-nya gratis di :
      http://it-ebooks.info/book/2988/
      Demikian yang bisa saya sampaikan, semoga bermanfaat.

      Hapus
  21. Asslamu'alaikum
    mas mau nanya,saya sedang mengerjakan ta yg kebetulan memakai arduino
    bisa dibantu untuk pemilihan arduino yg baik itu tipe apa
    krna komponen yang saya gunakan termasuk banyak,sama seperti jumlah komponen yang mas gunakan untuk proyek robot tsb

    setau saya untuk jumlah pin I/O di arduino UNO jumlahnya terbatas hanya 14 pin,sedangkan arduino due jumlahnya ada 54 pin
    jadi apa pemilihan arduino harus menyesuaikan jumlah komponen yang akan digunakan ataupun skema rangkaian nantinya

    sekedar info komponen yg saya gunakan
    LCD display
    sensor arus 2,suhu,cahaya,tegangan
    induktor 2,resistor,dioda,kapasitor
    lampu pijar50 watt

    Terima Kasih

    BalasHapus
    Balasan
    1. Wa'alaikum salam Wr Wb. Terimakasih Mas Fantasy atas pertanyaannya.
      Betul apa yang disampaikan oleh Mas Fantasy bahwa pemilihan arduino harus disesuaikan dengan jumlah komponen yang akan digunakan termasuk harus dipertimbangkan juga mengenai daya listrik yang dibutuhkan karena semakin banyak komponen yang digunakan (dan bekerja secara bersamaan) maka semakin banyak pula daya listrik yang dibutuhkan agar seluruh komponen yang digunakan bisa bekerja optimal.
      Untuk Arduino Due harap hati-hati karena arduino due bekerja pada tegangan 3,3V dan apabila pemberian tegangannya pada I/O melebihi 3,3V misalnya 5V, maka board akan rusak.
      Saran saya lebih baik Mas Fantasy menggunakan ARDUINO MEGA 2560 - R3. Akan tetapi masukan dari dosen pembimbing sangat diperlukan juga karena yang akan ikut bertanggungjawab hingga TA selesai dan berhasil.
      Demikian jawaban dari saya semoga bermanfaat.

      Hapus
  22. Assalam.wr.wb
    pak kalau pemograman arduino uno untuk penyortir barang berdasarkan ukuran ada gak pak ? terus sensornya , menggunakan sensor apa ya ? mohon pencerahannya terimakasih.

    BalasHapus
    Balasan
    1. Wa'alaikum salam Wr Wb. Terimakasih Mas Hanif Agra atas pertanyaannya.
      Untuk membuat penyortir barang "sederhana" berdasarkan ukurannya kita bisa menggunakan kombinasi alat mekanik dan elektronik. Alat mekanik berupa lubang untuk menyaring benda berdasarkan kelompok ukuran tertentu. Alat elektronik berupa sensor untuk memerintah robot menempatkan benda hasil penyaringan mekanik tersebut ke tempatnya sesuai ukuran bendanya.
      Sensor yang dibutuhkan bisa berupa LDR (harus terlindung dari cahaya luar), atau sensor inframerah yang penting bisa menghasilkan logika 0 dan 1. Untuk rangkaian sensor inframerah bisa dilihat di blog ini juga :
      http://zainms.blogspot.com/2012/12/remot-kontrol-infra-merah-4-canel.html
      Untuk IR transmitter-nya ambil rangkaian IR Transmitter yang ada NE555-nya langsung dihubungkan ke BC557 melalui R 330. Untuk IR Receiver-nya bisa diambil dari Rangkaian Receiver yang ada IS1U60 yang terhubung ke BC547 melalui R10K.
      Untuk rangkaian Sensor LDR rangkaiannya seperti sensor warna akan tetapi LED hanya menggunakan 1 warna saja misalnya putih.
      Sebelum membuat rangkaian dan programnya tetapkan terlebih dahulu bentuk dan kelompok ukuran benda yang disortir, misalnya benda berbentuk bulat dengan kelompok ukuran : besar, sedang, kecil. Benda yang tidak bisa masuk lubang paling besar, masuk kelompok besar. Benda yang tidak bisa masuk lubang berukuran sedang, masuk kelompok benda berukuran sedang. Benda yang bisa masuk lubang berukuran sedang, masuk kelompok benda berukuran kecil.
      Demikian yang dapat saya sampaikan, mohon maaf saya tidak sempat membuatkan gambar dan programnya. Silakan dikembangkan sendiri.

      Hapus
  23. Mas mau nanyak ni.
    itu kalau LDRnya diganti sama photodiode bisa mas?
    kalo bisa programnya ada yang diganti gak mas?
    atau ada yang ditambahin programnya?

    Terima Kasih sebelumnya

    BalasHapus
    Balasan
    1. Terimakasih Mas Edho Abalabal atas pertanyaannya.
      Pada prinsipnya LDR bisa diganti dengan Photodiode dan programnya juga harus diganti. Namun untuk saat ini saya belum sempat menggantinya, menyusun listing programnya, mengalibrasinya hingga unjuk kerjanya seperti yang menggunakan LDR.
      Sebagai referensi silakan pelajari :
      1. http://joe4cva.wordpress.com/2011/10/27/sensor-warna-sederhana-low-cost/
      2. http://outsidescience.wordpress.com/2012/10/10/diy-science-measuring-light-with-a-photodiode-i/
      3. http://outsidescience.wordpress.com/2012/11/03/diy-science-measuring-light-with-a-photodiode-ii/
      Demikian penjelasan saya, semoga bermanfaat.

      Hapus
  24. Mas mw nanya lagi ni mas, saya kan menggunakan catu daya yang saya rangkai sendri menggunakan travo 2ampere dan outputnya dc 9v ntk arduino, tp g kuat mutar 3bh motor servo tersebut, yang mw saya tanyakan, klu ditmbah dengan driver motor ntk motor servo tsb apakah sanggup catu daya saya yg 2A memutar ke 3 motor servo tsb?, trus berapa ampere harusnya ntk mengendlikan 3bh motor tsb dari catu daya/powersuply?, mkasi seblumnya mas atas masukkan n bantuanny :)

    BalasHapus
    Balasan
    1. Terimakasih Mas Dedet Masri Yuni atas pertanyaannya.
      Penyebab ketiga servo tidak bisa berputar karena Mas Dedet Masri Yuni hanya menggunakan sumber daya 5V di Board Arduino. Di Arduino Uno misalnya arus DC pin I/O pada board arduino hanya 40 mA untuk pin bertegangan 5V, sedangkan untuk pin bertegangan 3.3V arusnya hanya 50mA. Mau diberi kelebihan berapapun ampere pada board arduino, outputnya tetap segitu (40mA dan 50mA). Silakan baca di :
      http://users.etech.haw-hamburg.de/users/schubert/st/ArduinoUno.pdf
      di sub-bab "Library for the Servo Motor 2". Disitu direkomendasikan bahwa untuk menggerakkan lebih dari satu atau dua servo diperlukan power supply terpisah dengan tegangan untuk servo 5V stabil (atau disesuaikan dengan spesifikasi servo) dengan besar ampere sesuai kebutuhan untuk menggerakkan berapa servo.
      Sekedar gambaran kebutuhan ampere untuk servo menurut :
      http://www.pololu.com/blog/16/electrical-characteristics-of-servos-and-introduction-to-the-servo-control-interface
      adalah untuk standard servo kebutuhan ampere maksimal (stall current) 1A, untuk micro servo kebutuhan ampere maksimal beberapa ratus mA, dan servo raksasa (giant servo) kebutuhan ampere maksimal 10A atau lebih.
      Jadi saran saya untuk Mas Dedet Masri Yuni adalah :
      1. Menyediakan adaptor untuk board arduino yaitu 9V 1A stabil apabila untuk dicolok di 9V DC board arduino atau adaptor 5V 1A stabil apabila untuk dicolok di USB board arduino.
      2. Menyediakan adaptor 5V 2A stabil untuk 3 servo analog (2 micro servo dan 1 standard servo) dengan syarat ketiga servo tidak diperintah berputar bersama-sama (bergantian) dan berat beban harus dibawah titik stall torque dari masing-masing servo tersebut.
      Mungkin driver motor yang dimaksud adalah "Servo Driver Module". sebagai contoh untuk ATMEGA1280 SPIDER Controller (Driving up to 48 Servos!) (Silakan lihat di : http://www.klinikrobot.com/index.php?page=shop.product_details&flypage=flypage.tpl&product_id=427&category_id=47&option=com_virtuemart&Itemid=1) memerlukan power supply 5V 3A.
      Untuk membuat adaptor dengan ampere besar, silakan pelajari di :
      http://www.eleccircuit.com/power-supply-5v-2a-by-ic-78s05/
      http://www.eleccircuit.com/dc-power-supply-5v-and-12v-using-2n3055-lm309/
      http://www.eleccircuit.com/wp-content/uploads/2007/07/adapter_9_5.gif
      dan lain-lain.
      demikian penjelasan saya, selamat mencoba, semoga perhasil.

      Hapus
    2. oh gitu ya mas, jdi sebaiknya arus vcc untuk motor servo diambil dari powersuply langsung ya mas, tp skrng masalahnya udah saya ganti travonya dengan travo 5A mas dan saya buat output dc 9v ntk arduinonya, trus saya tes dengan cara saya sebelumnya yaitu arus servo tetap sya ambil di pin 5v arduino dan ternyata bisa untuk memutar ke 3 servo tsb, yang sya mw tanyakan lagi mas,gmna sebaiknya ya mas, apa tetap hrs saya pisah vcc servonya n diambil dari power suply dan dibuatkan dipowersuply output dc 5v untuk servonya ?, atau gpp dari pin 5v arduino aja ntk servonya ?, trus apa ada pengaruh perintah programnya nanti mas krn saya menggunakan travo 5A untuk suply arduino saya ? , mohon ilmu lagi mas :)... Makasi seblumnnya mas atas bantuaannya :)

      Hapus
    3. Terimakasih Mas Dedet Masri Yuni atas pertanyaannya.
      Kalau toh ketiga servo bisa bekerja dengan mengandalkan 5V dari board arduino, itu kan hanya pada saat eksperimen (servo berputar tanpa beban). Pada saat implementasi dimana servo diperintah mengangkat dan menggerakkan beban, dan dikombinasikan dengan penggunaan perangkat lain seperti sensor, dan lain-lain, maka arduino tiba-tiba merestart sendiri karena tidak mampu menanggung beban daya, dan servo-servonya hanya berkedut, tidak lagi bisa merespon perintah-perintah yang diberikan padanya.
      Silakan pelajari di :
      http://bildr.org/2012/03/servos-tlc5940-arduino/
      http://www.robotoid.com/appnotes/arduino-operating-two-servos.html
      http://communityofrobots.com/tutorial/kawal/how-connect-servo-arduino
      http://www.netlabtoolkit.org/reference/widgets/input-output/servoout/.
      Power supply 9V 5A bisa dimodifikasi ulang misalnya dengan membagi menjadi dua output 5V 2A dan 5V 3A menggunakan IC voltage regulator (misal 78S05 untuk 5V 2A dan LM1085 untuk 5V 3A). Cara merangkainya cari sendiri di google.
      Demikian penjelasan saya, semoga bisa dimengerti.

      Hapus
    4. Makasi ya mas, untuk masalah servo udah fix mas, skrg mslahnya pada sensor warnanya mas, knp g mw terdeteksi wrnanya ya mas, pdahal rangkaiannya dan programnya udah sama persis kyk mas bikin, tp tetap warna tidak bisa dideteksi sama sekali, penyebabnya knp ya mas?, atau bisa g mas saya pesan sensor warnanya dari mas aja n dgn kedudukannya kyk yg mas buat,trus berapa harganya mas,saya pesan n beli aja dari mas kalau boleh, soalnya udah 3x saya bikin sensor warnanya tetap g bisa2 mas, maslahnya ini saya jadikan T.A saya mas dengan tambahan lcd, mohon bantuaannya mas, mf ngerepotin mas :)

      Hapus
    5. Terimakasih Mas Dedet Masri Yuni atas pertanyaannya.
      Silakan dibaca secara teliti untuk bab sensor pada tulisan di atas.
      Coba periksa ulang rangkaiannya, apakah resistor ada yang tertukar. Resistor 330 ohm untuk pengaman LED RGB, sedangkan resistor 33K untuk pembanding. LED RGB adalah common cathode.
      Pengujian sensor warna lebih baik dilakukan tersendiri (terpisah dari servo).
      Angka-angka R G B yang terdapat pada program di atas adalah hasil dari peneraan sensor yang kita bikin (bukan angka baku program), jadi besaran angkanya pasti berbeda tergantung karakteristik sensor yang kita bikin.
      Untuk sensor warna saya tidak menjual dan saya tidak melayani pemesanan baik pembuatan gambar disain maupun rangkaian elektroniknya. Saya disini hanya share tentang apa yang saya tahu dan yang saya bisa.
      Demikian penjelasan saya, harap maklum adanya.

      Hapus
    6. ooo rupanya dari program saya mas, angka2 yang terdeteksi jauh beda dengan yang mas bikin, makasi mas, dah ketemu jawabannya mas :), mkasi buat ilmu n bntuannya mas :)

      Hapus
    7. Ok, terimakasih kembali Mas Dedet Masri Yuni, saya tunggu kabar wisudanya.

      Hapus
  25. Mas Mau tanya, itu waktu upload program Rx arduino ketemu Rx minsis, dan Tx arduino ketemu Tx minsis ya? Kok saya coba eror ya,, :)

    BalasHapus
    Balasan
    1. Terimakasih Mas Galang Prihadi atas pertanyaannya
      Itu betul Mas Galang Prihadi. Error bisa disebabkan sambungan kabel yang kurang tepat atau salah pin, atau bahkan lupa melepas Mikrokontroler pada Arduino. Selain itu masalah komunikasi dengan komputer (pemilihan serial port : Com1, Com2 atau Com3 dan seterusnya), atau pemilihan arduino di program arduino yang tidak sesuai dengan arduino yang digunakan atau ada kesalahan ketik di sketch-nya, dan lain-lain.
      Untuk lebih jelasnya silakan merujuk ke :
      http://arduino.cc/en/Tutorial/ArduinoToBreadboard
      Demikian penjelasan saya, selamat mencoba, semoga berhasil.

      Hapus
    2. Okay, Terima Kasih banyak Pak referensinya,,

      Hapus
  26. mas kalo burning ATmega nya gagal mulu , itu kenapa yaa ? saya pake arduino Uno

    BalasHapus
    Balasan
    1. Terimakasih Mas Yahya Iffan atas pertanyaannya.
      Kalau memang susunan rangkaiannya sudah betul dan komunikasi antara arduino uno dengan komputer tidak bermasalah, maka yang perlu diperhatikan adalah versi IDE. Gunakan IDE arduino-1.0.1 dan perlu dilakukan penggantian file boards.txt dan avrdude.conf. Oleh karena ada file program yang harus diganti, maka harus dibuat IDE khusus misalnya arduino-1.0.1 BURN BOOTS dengan cara copy seluruh program arduino-1.0.1 dan paste dengan nama baru misalnya arduino-1.0.1 BURN BOOTS.
      Prosedur selengkapnya bisa dilihat di :
      http://www.instructables.com/id/Burning-the-Bootloader-on-ATMega328-using-Arduino-/?ALLSTEPS
      Download terlebih dahulu dua file pengganti yaitu avrdude.conf (hasil extract dari file avrdude.rar) dan boards.txt.
      Cari file avrdude.conf di ...\arduino-1.0.1 BURN BOOTS\hardware\tools\avr\etc. Ganti dengan avrdude.conf hasil download.
      Cari file boards.txt di ......\arduino-1.0.1 BURN BOOTS\hardware\arduino. Ganti dengan file boards.txt hasil download.
      Jalankan IDE dan lanjutkan proses burning.
      Demikian penjelasan saya, selamat mencoba, semoga berhasil.

      Hapus
  27. maaf pak agak melenceng dari proyek bpak.. saya mau nanya, mikon atmega328nya bisa dilepas gk dari board arduino uno ? sya mau menggunakan mikonnya saja tanpa board arduino uno. klo misalnya bisa untuk berdiri sendiri mikonnya, komponen apa saja yang sya btuhkan untuk bisa brjalan sprti board arduino? jadi board arduino sya gunakan untuk numpang upload code saja.. mohon pencerahannya pak trima kasih...

    BalasHapus
    Balasan
    1. Terimakasih atas pertanyaannya.
      Mikon 328 di Arduino Uno bisa dilepas dan dipindahkan ke breadboard. Komponen elektronik minimal yang perlu ditambahkan adalah 1 x Resistor 10 K ohm, 2 x Capasitor 22 pF, dan 1 x Crystal Oscilator 16-MHz,
      Rangkaiannya bisa dilihat pada Gambar 3 (di bagian breadboard warna putih).
      Demikian penjelasan saya, selamat mencoba, semoga berhasil.

      Hapus
  28. Mas.. bagus karya nya. izin membuat nya buat T.A mas.
    Mas mau tanya tentang servo yang di pakai bisa angkut beban buah tomat gk?

    BalasHapus
    Balasan
    1. Terimakasih Mas Maulana Jamil atas pertanyaannya.
      Maaf, baru sempat merespon. Saya persilakan untuk dibuat TA.
      Servo yang digunakan untuk mengangkat dan memegang adalah Micro servo Tower Pro SG91R dengan Torque 1.80 kg-cm pada tegangan 4.8V atau setara dengan 180 gram-10 cm.
      Buah tomat ukuran kecil beratnya kurang dari 45 gram, ukuran sedang beratnya antara 45-150 gram dan ukuran besar beratnya lebih dari 150-200 gram.
      Kesimpulan : Servo ini hanya bisa mengangkat buah tomat berukuran kecil hingga sedang dengan panjang tangan pemegang buah kurang dari 10 cm dari titik tengan servo dan berat tangan pemegang kurang dari 30 gram.
      Apabila Mas Maulana Jamil ingin meningkatkan kekuatannya silakan ganti servo dengan Torque yang lebih besar.
      Demikian penjelasan saya, selamat mencoba, semoga berhasil.

      Hapus
  29. Mas izin buat inspirasi TA saya ya :)

    Oya mas saya mau tanya nilai untuk toleransi warna saya masih kurang paham dg rumusnya.. Dan di program buat nilai toleransinya kan int k =6 nah nilai 6 untuk toleransinya itu diperoleh dr mana ya??
    Mohon penjelasannya..

    Trima kasih

    BalasHapus
    Balasan
    1. Terimakasih Mas Andre Raditya atas pertanyaannya.
      1. Ok, saya kasih izin untuk TA-nya. Semoga berhasil.
      2. Toleransi warna : Saya menetapkan toleransi warna berdasarkan tabel hasil kalibrasi sensor warna (Gambar 23). Pada Tabel terlihat bahwa angka-angka yang dihasilkan dari kalibrasi sensor warna berbeda-beda untuk masing-masing R, G, dan B dari peneraan ke 1 hingga ke 60. Oleh karena angkanya berbeda inilah maka diperlukan angka toleransi warna.
      Rumusnya adalah k = 1 + nilai angka tertinggi - nilai rata-rata (semua angka dibikin bulat, tidak berbentuk pecahan desimal).
      Contoh : pada Tabel, pada warna MERAH kolom R, nilai tertinggi adalah 242 dan nilai rata-rata adalah 240, sehingga Toleransi Warna untuk R di kelompok MERAH adalah k=1+242-240=3.
      Di bagian lain, misalnya di kelompok warna KUNING kolom B, nilai tertinggi adalah 213 dan nilai rata-rata adalah 210, sehingga Toleransi Warna untuk B di kelompok KUNING adalah k=1+213-210=4.
      Dari hasil perhitungan untuk setiap kolom R,G,B pada tiap kelompok warna diperoleh angka-angka k=3 dan 4 (tidak berbeda jauh). Sehingga secara teoritis, yang digunakan adalah yang lebih besar yaitu k=4.
      Akan tetapi dalam prakteknya unjuk kerja robot ini kadang tepat menaruh warna sesuai tempatnya, kadang tidak sesuai. Untuk itu dipilih angka yang dekat dengan angka 4 yaitu 5. Hasilnya masih ada sedikit kesalahan, sedemikian sehingga dipilih k=6. Hasilnya robot bisa bekerja dengan baik.
      Ketidaksesuaian nilai k antara teoritis dan prakteknya disebabkan oleh karakteristik sensor warna yang masih menggunakan LDR yang sangat peka cahaya sehingga kinerjanya sangat terpengaruh dengan intensitas cahaya di sekitarnya.
      Referensi bisa dibaca di link ini :
      http://bridge.bildr.org/forum/viewtopic.php?f=29&t=636&p=7419

      Demikian penjelasan saya, selamat mencoba, semoga berhasil.

      Hapus
  30. oh bgtu ya mas ternyata.. pantes aj waktu alatnya saya coba terkadang bendanya ga sesuai dengan penempatan warnanya.. udah solved nih buat yg toleransi warnanya..

    oya mas buat data kalibrasinya itu harus di ambil 60 data ? klo misalnya saya cuma ambil 10-20 data bisa ga mas ??

    thanks infonya :)

    BalasHapus
    Balasan
    1. Terimakasih Mas Andre Raditya atas pertanyaannya.
      Jumlah data kalibrasinya tidak harus 60. Hal ini tergantung dari karakteristik sensor. Makin akurat sensornya, satu data sudah cukup, toh kalau sensornya sangat akurat, pasti angka yang muncul saat kalibrasi (pada Video 2) akan selalu sama meskipun diulang sampai 60 atau lebih datanya. Pada kondisi ini, angka toleransi warna (k) tidak diperlukan lagi sehingga rumusnya jadi lebih sederhana.
      Sebaliknya apabila sensor tidak akurat, tentu angka yang muncul saat kalibrasi akan bervariasi, polanya bisa saja ngelantur meski sudah mencapai data yang ke 60 atau lebih, sehingga tidak dapat disimpulkan. Pada kondisi ini harus dilakukan perbaikan dan penyempurnaan sensor.
      Kesimpulan :
      1. Jumlah data lebih dimaksudkan sebagai alat atau sarana menentukan kelaikan kinerja sensor.
      2. Semakin homogen data, atau semakin kecil bias atau simpangannya, semakin baik atau laik sensornya.

      Demikian penjelasan saya, semoga berkenan dan bermanfaat.

      Hapus
  31. terima kasih atas informasi dan petunjuknya dalam pembuatan dan logika kerjanya maupun programnya mas.. akhirnya saya dapat membuat alat ini dengan penambahan LCD sebagai indikator dan penambahan sedikit cara kerjanya..
    sekali lagi terima kasih :)

    BalasHapus
    Balasan
    1. Terimakasih kembali Mas Andre Raditya. Selamat atas keberhasilan dan pengembangannya. Ini sesuai dengan harapan saya. Dengan keberhasilan ini tentunya teman-teman yang lain tidak ragu lagi untuk mencoba membuat dan mengembangkannya sesuai keinginannya.

      Hapus
  32. mas mau tanya bagaimana cara memindahkan data dari arduino ke komputer/server

    BalasHapus
    Balasan
    1. Terimakasih banyak atas pertanyaannya. Sebelumnya saya mohon maaf baru sempat merespon karena sejak Agustus 2014 hingga Maret 2015 nanti masih sibuk dengan pekerjaan.

      1. Cara memindahkan data dari arduino ke komputer, ada beberapa cara dan tergantung dari jenis data apa yang akan dipindahkan. Untuk ini saya langsung memberi contoh yang prinsipnya hampir mirip dengan memindahkan data dari arduino ke komputer menggunakan software Coolterm Capture. Silakan lihat di alamat web berikut :
      http://www.instructables.com/id/Visualize-data-from-sensors-using-Arduino-coolte/?ALLSTEPS
      Atau bisa juga dilihat di Youtube dengan alamat berikut :
      https://www.youtube.com/watch?v=xqdC__jZILk

      2. Cara memindahkan data dari Arduino ke Server. Ada beberapa cara, disini saya langsung memberi contoh yang prinsip kerjanya hampir mirip dengan memindahkan data dari arduino ke server, yaitu memindahkan data dari arduino ke web server. Silakan lihat di alamat web berikut :
      - http://www.tweaking4all.com/hardware/arduino/arduino-ethernet-data-push/
      - http://www.engineerathome.com/elektronica/
      log+arduino+data+to+a+web+server/34
      - http://www.instructables.com/id/Real-time-room-temperature-on-your-Website-no-jav/?ALLSTEPS
      Atau bisa juga dilihat di Youtube dengan alamat berikut :
      https://www.youtube.com/watch?v=olUCX1EGIIU

      Demikian penjelasan dari saya, selamat mencoba, semoga berhasil.

      Hapus
  33. Aslamualikum pak,saya wahyu dari teknik elektro unand,saya punya project buat penyortir barang dengan sensor warna TCS230,saya telah buat programnya dengan arduino uno dan penyortirnya berupa motor stepper,tapi setelah saya hubungkan ke hardware nya dan motor dan sensor warnanya tidak terjadi apa2 padahal sebelumnya saya verify sketchnya tidakada masalah..mohon pencerahan dari bapak..terima kasih pak

    BalasHapus
    Balasan
    1. Wa'alaikum salam wr wb., Terimakasih Mas Wahyu Satria atas pertanyaannya. Mohon maaf baru sempat merespon.
      Saya tidak tahu persis rangkaian serta prinsip kerjanya seperti apa.
      Biasanya ada masalah dengan powersupply. Untuk rangkaian dengan motor stepper biasanya membutuhkan daya (ampere) cukup besar.
      Saran saya, perlu dilakukan pengelompokan rangkaian, yaitu kelompok rangkaian sensor warna dan kelompok rangkaian motor penggerak.
      Dalam proses pembuatannya, terlebih dahulu dilakukan pengetesan unjuk kerja per kelompok rangkaian.
      Pengetesan unjuk kerja per kelompok rangkaian menggunakan sketch khusus untuk pengetesan kelompok rangkaian sensor warna dan sketch khusus untuk pengetesan kelompok rangkaian penggerak.
      Apabila sensor warna sudah menunjukkan unjuk kerja yang baik dan akurat,
      Tes berikutnya unjuk kerja rangkaian penggerak. Apabila rangkaian penggerak sudah menunjukkan unjuk kerja yang baik dan akurat, maka baru dilakukan pengetesan unjuk kerja kombinasi antara rangkaian sensor warna dan rangkaian penggerak menggunakan sketch kombinasi keduanya.
      Demikian saran dan penjelasan saya, selamat mencoba, semoga berhasil.

      Hapus
  34. Aslamualikum, saya faza teknik informatika amikom

    BalasHapus
  35. mas saya imam dari jurusan teknik komputer IPB, saya punya tugas kuliah tentang robot beroda pemindah barang, prinsipnya hampir sama dengan postingan mas, cuman yang saya mau tanya cara menjalankan servonya dan roda 4WD nya gmna ya mas? saya punya cth video nya apakah mas berkenan membantu saya? jika berkenan saya sangat berterima kasih, mohon segera di balas, saya akan mengirimkan cth videonya via email

    BalasHapus
    Balasan
    1. Terimakasih Mas Imam Aris atas pertanyaannya. Akan tetapi saya mohon maaf sebelumnya apabila saya tidak bersedia membantu sepenuhnya hingga jadi robot.
      Sebenarnya tugas saya di blog ini hanya menjelaskan kepada pembaca apabila masih belum jelas mengenai pokok bahasan yang ada di posting saya dan memberikan info tentang referensi sebagai solusi atas masalah yang timbul selama proses pembuatan robot yang metode (prinsip kerjanya) mirip dengan posting saya. Untuk itu saya mohon maaf apabila saya tidak bersedia membuatkan sketch atau disain robot yang Mas Iman Aris akan buat. Saya sarankan Mas Imam Aris membelajari terlebih dahulu referensi yang akan saya berikan berikut dan mengembangkannya sehingga apabila dalam proses pembuatannya dijumpai kesulitan maka mas Imam Aris akan dapat menemukan solusinya. Apabila Mas Imam Aris berkenan, berikut ini ada beberapa referensi yang mungkin dapat membantu mewujudkan ide Mas Imam Aris:

      - Referensi untuk 4WD
      http://happyrobot.eu/arduino-4wd-robot-code/
      http://makezine.com/projects/build-your-own-arduino-controlled-robot/
      Pada Project Steps silakan klik Wiew All.
      http://blog.miguelgrinberg.com/post/building-an-arduino-robot-part-i-hardware-components
      Didalamnya klik Part II, Part III, Part IV, Part VI. Pada Part VI ini dibahas cara menggerakkan robot dengn remote control.

      - Referensi untuk menggerakkan servo bisa dipelajari di posting ini.

      Demikian penjelasan saya, semoga bermanfaat.

      Hapus
    2. kalau motor stepper sama aja kan ya mas? terus untuk sensor tcs32000 kalibrasinya sama sensor yang mas buat ini? untuk pin sensor garis (line follower) di pin nomer berapa ya biasanya mas? terus untuk menggerakkan motor dan menyinkronkan dari pembacaan sensor garis gimana ya mas? apakah mas punya referensi untuk hal dimana si sensor garis membaca dan si motor bergerak sesuai dengan garis hitam, cara sensor membaca garis hitam di 3 persimpangan (tempat R, tempat G, tempat B) dan berhenti pada saat persimpangan ujung untuk menaruh barang?

      Hapus
    3. cara kalibrasi tanpa melepas ic nya bisa tidak? terus cara mengisi bootloader untuk arduino uno gimana mas?

      Hapus
    4. Terimakasih Mas Imam Aris atas pertanyaannya.
      Motor stepper berbeda dengan motor servo, sangat tergantung dari kebutuhan penggunaannya, misalnya kita butuh kecepatan gerak, kekuatannya, ukurannya, dll. Untuk lebih jelasnya silakan pelajari di :
      http://components.about.com/od/Components/a/Stepper-Motors-Vs-Servo-Motors-Selecting-A-Motor.htm
      Untuk sensor TCS 3200 prinsipnya agak berbeda dengan sensor warna yang digunakan dalam robot ini. Untuk lebih jelasnya silakan pelajari dan praktekkan url berikut ini :
      http://www.dfrobot.com/index.php?route=product/product&product_id=540
      Untuk line follower, silakan pelajari dan praktekkan url berikut :
      http://www.circuitstoday.com/line-follower-robot-using-arduino
      Untuk gerakan kombinasi antara sensor garis dan RGB ditentukan oleh pemrogramannya.
      Cara kalibrasi tanpa melepas IC yaitu menggunakan FTDI Basic Breakout-5V yang disambungkan ke breadboard arduino minimalis.
      Cara mengisi bootloader Arduino Uno, seperti dijelaskan pada kotak catatan terakhir di bawah Gambar 24 tulisan ini.

      Catatan : Untuk menghindari kegalauan (penasaran) berkepanjangan bagi para pemula, saya sarankan lebih baik untuk mempraktekkan terlebih dahulu project-project tunggal seperti robot line follower, sensor warna, menggerakkan servo sudut demi sudut, dll. sebelum berangan-angan membuat robot yang lebih kompleks. Setelah memahami dan mengerti prinsip kerjanyatanya, baru kemudian memikirkan dan mempraktekkan project kombinasi untuk pengembangan. Dengan demikian, segala kendala yang dijumpai selama mengerjakan project yang kompleks akan dapat diatasi sendiri.

      Demikian penjelasan saya, selamat berkarya.

      Hapus
  36. mas arduino nya itu diinject ke projectboardnya gimana yaaa?
    apa cukup saja memakai projectboard seperti gambar diatas dengan sumber tegangan langsung ke projectboard tanpa ada rangkaian khusus seperti diatas

    terima kasih, mahon bantuannya

    BalasHapus
    Balasan
    1. Terimakasih Mas Ridwan Yunus atas pertanyaannya.
      Yang diinject ke projectboard itu namanya Arduino Minimalis on Breadboard, yang terdiri dari komponen dasar, yaitu ATmega 328p dengan Bootloader Duemilanove atau UNO, Crystal Oscilator 16-MHz, dan Capasitor 22 pF. Jadi persis seperti Gambar 13.
      Demikian penjelasan saya, semoga bermanfaat.

      Hapus
  37. mas zain, semisal itu atmega nya tidak dilepas. langsung menggunakan rangkain yang disediakan oleh arduino uno nya bisa tidak? terima kasih. jadi tidak menggunakan projec board tambahan.

    BalasHapus
    Balasan
    1. Terimakasih Mas Fajar Ali Ahmad atas pertanyaannya.
      Pada prinsipnya bisa, asal saja kebutuhan daya tambahan untuk beberapa servo harus dipenuhi dari luar sistem arduino, karena board arduino sendiri daya listriknya sangat terbatas, misalnya untuk menggerakkan dua servo saja sudah tampak tersendat-sendat.
      Cara menambahkan daya dari luar board arduino bisa dipelajari di :
      http://www.robotoid.com/appnotes/arduino-operating-two-servos.html
      Demikian penjelasan saya, selamat mencoba, semoga berhasil.

      Hapus
  38. mas untuk penjelasan rangkaiannya gimana sama pinnya pada arduino

    BalasHapus
    Balasan
    1. Terimakasih Mas Alwi Assegaf atas pertanyaannya.
      Untuk menjelaskan rangkaian dan pin-pin-nya perlu melihat Gambar 13, Gambar 14, dan sketch programnya.
      Misalnya Led R,G,B masing-masing dikendalikan melalui digital pin 3,4,5. Pantulannya ditangkap oleh sensor dan sinyalnya masuk melalui Analog input 0. Selanjutnya servo-servo penggerak tangan robot diperintah untuk menggerakkan tangan robot memindahkan objek melalui digital pin 9,10,11. Dan seterusnya.
      Demikian penjelasan saya, semoga bisa dimengerti dan bermanfaat.

      Hapus
  39. apakah atmega328nya juga harus dilepas jika menggunakan arduino uno ??
    trims

    BalasHapus
    Balasan
    1. Terimakasih Mas Theo Surja atas pertanyaannya.
      Ya betul, Atmega328 harus dilepas karena kita hanya meminjam FTDI-nya saja pada Arduino untuk mengisi sketch pada Arduino Minimalis on Breadboard.
      Demikian penjelasan saya, semoga bisa dimengerti.

      Hapus
  40. muhamad baguz kurniawan20 Desember 2014 pukul 11.25

    pak saya mau tanya
    Apa sih perbedaan ATmega328 sama ATmega328P
    dan jika saya memakai arduino, mikrokontroler apa aja yang cocok buat proyek seperti bapak selain ATmega328
    trimakasih

    BalasHapus
    Balasan
    1. Terimakasih mas Muhamad Baguz Kurniawan atas pertanyaannya. Mohon maaf baru sempat merespon karena setelah pindah kerja ke tempat yang baru semakin sibuk dan tidak sempat lagi posting tulisan baru dan merespon pertanyaan yang masuk dari pembaca.
      ATmega 328P saat pembuatannya diproses menggunakan PicoPower yang cocok untuk aplikasi yang membutuhkan daya rendah. 328P lebih hemat energi listrik dan harganya lebih mahal dibanding 328. Info selengkapnya silakan baca di :
      http://www.digitalmisery.com/2011/11/arduino-bootloader-with-atmega328-and-atmega328p/
      Selama masih pakai arduino, ya mikrokontroler yang direkomendasikan untuk masing-masing tipe arduino. Khusus untuk proyek ini yang lebih cocok ya duemilanove atau uno dan tipe yang diatasnya apabila ingin meningkatkan kemampuan robotnya. Tentunya perintahnya harus disesuaikan dengan tipe arduino yang akan digunakan.
      Demikian jawaban saya, semoga bermanfaat.

      Hapus
  41. muhamad baguz kurniawan20 Desember 2014 pukul 18.27

    oh iya pak selain arduino uno apa lagi ya yang bisa di pakai seperti proyek bapak ini,minta tolong pak buat TA soalnya
    trimakasih

    BalasHapus
    Balasan
    1. Terimakasih Mas Muhamad Baguz Kurniawan atas pertanyaannya. Jawabannya seperti pada pertanyaan sebelumnya, silakan mempelajarinya di :
      http://www.arduino.cc/en/Main/Products
      Disini dapat diperoleh info mengenai macam-macam arduino beserta spesifikasi teknis masing-masing, Mas M. Baguz Kurniawan tinggal memilih arduino yang paling tepat untuk TA-nya.
      Demikian, semoga bermanfaat.

      Hapus
  42. muhamad bagus kurniawan20 Desember 2014 pukul 21.41

    oh iya pak itu itudi bahandan alat : gunanya PCB IC itu buat apa
    kalau pakai arduino apakah perlu beli PCB IC pak

    maaf saya banyak tanya
    soalnya saya orang informatika pak
    trimakasih

    BalasHapus
    Balasan
    1. Terimakasih Mas Muhamad Bagus Kurniawan atas pertanyaannya.
      PCB IC adalah papan rangkai elektronik siap pakai yang jarak antar lubangnya sama dengan jarak antar kaki-kaki IC sehingga IC bisa disolder di papan rangkai tersebut.
      PCB IC digunakan apabila kita menggunakan rangkaian elektronik tambahan yang menggunakan IC sebagai perangkat input, output Arduino seperti rangkaian sensor-sensor, dll.
      Mas M. Baguz Kurniawan juga bisa membuat PCB sendiri sesuai rangkaian elektronik yang diinginkan.
      Demikian jawaban saya, semoga bermanfaat.

      Hapus
  43. makasih pak saya yang anak SMK bisa buat sendiri

    BalasHapus
    Balasan
    1. Terimakasih Mas Ryan Sugeh atas kunjungannya ke blog ini dan terimakasih atas laporan keberhasilannya. Saya tunggu hasil kreatifitas selanjutnya.

      Hapus
  44. amazing sekali MAS ZAIN ! .
    sama persis dgn judul TA yg sy buat, hanya saja dibuat penambahan konveyor sebagai implementasi pada otomasi industri.
    mau tanya rinci nih mas, untuk pembuatan pencapit/ greeper nya itu sendiri bgaimana yah pada sistem mekanik nya. karena satu point cukup besar pada pencapit itu sendiri yang terlihat bukan sederhana lagi. yaa mungkin bahan nya sederhana namun imajinasi mas Zain yg sungguh amazing....
    salam.

    BalasHapus
    Balasan
    1. Terimakasih Mas Citro Baskoro atas komentarnya serta selamat dan sukses untuk TA-nya.
      Untuk pembuatan gripper-nya saya masih belum sempat membuatkan gambar teknis yang lebih jelas. Namun bisa dicermati (Zoom) Gambar 11 di pojok kanan bawah dan pojok kanan atas. Dua jari penjepitnya masing-masing terhubung dengan gear yang saling bersinggungan satu sama lain. Satu gear digerakkan oleh tuas servo, sehingga gear berputar 15 derajat dan gear satunya berputar berlawanan arah yaitu -15 derajat, dan akhirnya capit membuka 30 derajat, dan sebaliknya.
      Demikian jawaban saya, semoga bermanfaat.

      Hapus
    2. Mas Citro Baskoro, ini ada Dimas Dualcore minta referensi TA-nya. Silakan direspon. Terimakasih.

      Hapus
  45. Balasan
    1. Terimakasih Mas Salman Aziz atas kunjungannya di blog ini, namun sayang sekali saya belum berkenan memberikan alamat e-mail, karena untuk saya masih berharap setiap pertanyaan, komentar, dll. seharusnya disalurkan lewat blog ini agar bisa di-share dengan teman lainnya dan saya sangat berharap blog ini mendapatkan kunjungan yang sebanyak-banyaknya dari halayak dan dapat memberi manfaat sebanyak-banyaknya pula bagi mereka.
      Demikian jawaban saya, mohon maklum adanya.

      Hapus
  46. mas Cireo Baskoro, boleh saya minta referensi TA mas ?
    saya juga lagi mengerjakan TA yang mirip dengan mas.

    BalasHapus
    Balasan
    1. Mas Citro Baskoro, ini ada Dimas Dualcore minta referensi TA-nya. Silakan direspon. Terimakasih.

      Hapus
  47. pak jika saya memakai adaptor 7,5 volt apakah bisa untuk menggerakan robotnya trimakasih mintak tolong di bls pak

    BalasHapus
    Balasan
    1. Terimakasih Mas Muhammad Baguz atas pertanyaannya.
      Adaptor 7,5V kalau dihubungkan dengan Breadboard Power Supply 3V/5V, tegangannya masih kurang untuk menhasilkan tegangan output Breadboard Power Supply 3V/5V sebesar 5V stabil.
      Disini Mas Muhammad Baguz tidak menyebutkan kuat arus Adaptor tersebut. Adaptor yang tepat untuk menggerakkan rangkaian robot ini adalah 9 Volt 2 Ampere. Jadi adaptor 7,5 volt ? ampere tidak layak digunakan menggerakkan rangkaian robot ini.
      Demikian jawaban saya, semoga bermanfaat.

      Hapus
  48. Assalamualaikum W.WB

    Mau tanya pak cara menyalakan arduino menggunakan baterai bagaimana ? ? ? di tunggu jawabannya secepatnya ... Terima kasih ....

    BalasHapus
    Balasan
    1. Wa'alaikum salam Wr. Wb., terimakasih mbak Bilqis Athifah Yusuf atas pertanyaannya.
      Misalnya kita menggunakan Arduino Uno atau Duemilanove yang membutuhkan tenaga listrik dari Battery 9 Volt. Kita menggunakan Battery clip 9V yang disambung dengan Power Jack seperti pada Gambar 24. Kita bisa merakit sendiri seperti dijelaskan di :
      http://playground.arduino.cc/Learning/9VBatteryAdapter
      Atau membeli yang sudah jadi, bisa dilihat dan dibeli di :
      http://klinikrobot.com/id/component/virtuemart/elec-parts-power-supply/battery-holder-socket/9v-black-battery-housing-w-switch-dc-jack-power-conn.html.
      Demikian jawaban saya, selamat mencoba, semoga berhasil.

      Hapus
  49. oh iya pak apakah arduino uno bisa memakai 2 sensor rgb dan ldr pak
    dan saya memakai 2 servo pak berarti 9 volt kuat ya pak

    trimakasih pak udah menjawab pertanyaan saya pak

    BalasHapus
    Balasan
    1. Terimakasih Mas Muhammad Baguz atas pertanyaannya.
      Pada arduino uno masih bisa memakai 2 RGB, 2 sensor LDR dan 2 servo, karena pada arduino Uno terdapat 6 pin input analog dan 14 pin I/O digital (dengan 6 PWM output).
      9V battery kualitas bagus masih kuat, akan tetapi cepat habis daya listriknya. Apabila menggunakan Adaptor harus diperhatikan arus listrik maksimalnya. Adaptor 9V 2A cukup untuk memenuhi kebutuhan minimalnya, akan tetapi pembagian daya listriknya harus seperti rangkaian yang sudah diuraikan di atas (kebutuhan daya listrik 2 Servo dan 2 RGB tidak bisa dibebankan langsung kepada daya listrik yang disediakan Arduino).
      Demikian jawaban saya, semoga bisa dimengerti dan bermanfaat.

      Hapus
  50. trimakasih pak atas jawabannya

    BalasHapus
  51. apakah bisa pakai arduino uno ? ( karna saya akan lomba robotic tapi harus pakai arduino uno ) terima kasih

    BalasHapus
    Balasan
    1. Terimakasih Mas Putu Irfan atas pertanyaannya.
      Robot ini bisa memakai arduino uno. Silakan baca lebih mendalam tulisan di atas. Pada alinea terakhir terdapat catatan yang menjelaskan apabila kita menggunakan arduino uno.
      Demikian jawaban saya, selamat mengikuti lomba, semoga juara.

      Hapus
  52. Saya mahasiswa T.Informatika semester II, kami sedang dalam Ujian Akhir Semester, dan untuk Ujian kali ini diminta untuk membuat robot, kelompok kami tertarik untuk membuat robot ini dan tinggal membangun lengan robotnya.
    Bisa tolong diberi gambaran sedikit tentang lengan robot nya pak? karena kelompok saya belum mengerti konsep pembuatan lengan dengan servonnya.
    Terimakasih sebelumnya...

    BalasHapus
    Balasan
    1. Terimakasih Mbak Rahma Wita atas pertanyaannya.
      Lengan robot yang sudah jadi harganya mahal, sehingga saya memutuskan untuk membuat sendiri.
      Untuk itu diperlukan ketelatenan, ketelitian, kesabaran dan kemampuan mekanik.
      Bahan yang digunakan harus kuat dan ringan, demikian pula untuk servonya juga harus berukuran kecil, ringan dan kuat sehingga mampu mengangkat barang dengan gerakan yang lincah.
      Untuk lebih jelasnya, silakan pelajari di :
      - http://letsmakerobots.com/node/31425
      - http://www.thingiverse.com/thing:18339
      - http://sjlevine.scripts.mit.edu/blog/?paged=2
      - http://letsmakerobots.com/robot/project/mr-sparkler-new-video-burning-down-house
      - http://letsmakerobots.com/taxonomy/term/378
      - https://www.youtube.com/watch?v=ycFufTbHSgA
      - https://www.youtube.com/watch?v=HMQ4u9UlPSQ
      - https://www.youtube.com/watch?v=7CUNx4kPw6w
      - https://www.youtube.com/watch?v=qKZLx1wtFCk
      dan masih banyak lagi.
      Demikian penjelasan saya, semoga bermanfaat.

      Hapus
  53. pak apakah pemasangan sensor harus di atas led rgb pak, karena saya memasang led rg dan sensor ldr sejajar, hasilnya kalibrasinya berbeda bbeda pak, trimakasih maaf saya tanya terus pak

    BalasHapus
    Balasan
    1. Terimakasih Mas Muhammad Baguz atas pertanyaannya.
      Memang betul, sensor (LDR) harus dipasang pada posisi lebih tinggi dari LED RGB, agar cahaya RGB yang tertangkap oleh sensor (LDR) murni berasal dari pantulan permukaan benda yang ditera, sehingga pantulan cahaya yang diterima oleh sensor (LDR) benar-benar menggambarkan warna benda yang ditera, sehingga akurasinya mendekati 100%.
      Demikian penjelasan saya, semoga bermanfaat.

      Hapus
  54. mas ,mau tanya apa perbedaan cara kerja sensor ini dengan tcs 3200 ?

    BalasHapus
    Balasan
    1. Terimakasih Mas Indra Hardianto atas pertanyaannya.
      Sensor pada robot ini sangat sederhana, cara kerjanya hanya berdasarkan pantulan cahaya oleh objek berwarna. Intensitas pantulan cahaya diubah ke bentuk sinyal analog. Sinyal analog yang dikeluarkan sensor ini dihubungkan ke Arduino (UNO) melalui kelompok pin analog.(Analog in A0,A1,A2,A3,A4,A5).
      Sedangkan untuk TCS 3200 sinyal analog berupa arus listrik dikonversi terlebih dahulu ke bentuk frekuensi. Sinyal outputnya adalah sinyal digital gelombang peregi dengan duty cycle 50%. Sinyal digital yang dihasilkan oleh TCS 3200 ini dihubungkan langsung ke kelompok pin Digital Arduino (UNO).
      Demikian penjelasan singkat saya, semoga bermanfaat. Untuk lebih jelasnya silakan pelajari di :
      http://www.dfrobot.com/wiki/index.php/TCS3200_Color_Sensor_(SKU:SEN0101).

      Hapus
    2. sebenarnya sih sama saja kegunaannya, yg pastinya TCS 3200 tidak ribet, tapi kebesaran

      Hapus
  55. maaf mas mau tanya.. kalo microcontroler nya di ganto pake yang ATmega8535 gimana... sama aja ato ada yg hrus d ganti komponen nya... mohon bantuannya.. trimakasih.

    BalasHapus
  56. om kalu jenis motor servo yg hrus dli nya jenis nya apa ya? dan tolong jelaskan.. dan kalo bisa di situs online mana yg menjual servo tesbut yg mnrut om terpercaya... Trimakasih

    BalasHapus
  57. om kalu jenis motor servo yg hrus dli nya jenis nya apa ya? dan tolong jelaskan.. dan kalo bisa di situs online mana yg menjual servo tesbut yg mnrut om terpercaya... Trimakasih

    BalasHapus
  58. Assalamualaikum Pak Zain. saya bisa minta contact person nya? saya mau menanyakan banyak hal dan sedikit rumit mengenai arm robot mr-999e diprogram dengan arduino uno. untuk lebih jelasnya saya ingin bertanya by phone. terimakasih.

    BalasHapus
  59. Assalamualaikum Pak Zain. saya bisa minta contact person nya? saya mau menanyakan banyak hal dan sedikit rumit mengenai arm robot mr-999e diprogram dengan arduino uno. untuk lebih jelasnya saya ingin bertanya by phone. terimakasih.

    BalasHapus
  60. artikel di atas ga bisa di download?

    BalasHapus
  61. mau nanya mas,,,
    motor 1 sebagai base servo untuk gerak kanan kiri.
    motor 2 untuk pergelangan gerak atas bawah..
    motor 3 untuk gripper,, pencapit.. servo nya semua biasa ya...
    trus aku bingung untuk lokasi motor 2 nya yg sebagai pergelangan.. itu kerjanya jadinya narik grippernya...
    mohon pencerahan..

    BalasHapus
  62. Assalamualaikum pak mau tanya kenapa rangakain ini harus menggunakan breadboart ? Mengapa tidak langsung di rangkai di atas arduino ? Tims

    BalasHapus
  63. Assalamualaikum pak mau tanya kenapa rangakain ini harus menggunakan breadboart ? Mengapa tidak langsung di rangkai di atas arduino ? Tims

    BalasHapus
  64. Wah keren dan makasih banyak pak untuk ilmu arduinonya di tunggu untuk yang penggunaan raspinya klo boleh

    BalasHapus
  65. mas mau tanya bisakah dua Micro Servo TowerPro SG91R di ganti dengan micro servo towerpro SG90 ? mohon penjelasannya .
    terima kasih

    BalasHapus
  66. iya ini sangat bagus yah tapi masih kurang

    BalasHapus
  67. Mas minta bantuan untuk arahannya,
    saya lagi nyusun TA tentang penyortiran barang dengan pendeteksian warna dan ukuran. untuk mendeteksi warna saya menggunkan sensor TCS3200 dan untuk mendeteksi ukuran saya mnggunakan Photodioda,gmna cara sya untuk mengaktifkan photodiada dengan nilai dari hasil baca sensor warna.
    dimohon arahan dan penjelasannya ya mas...
    terima kasih..

    BalasHapus
  68. Pak, saya boleh minta contact person bapak?

    BalasHapus
  69. ass....

    kira2 bang utuk proyek itu mnhabiskan dana brpa ya bang
    biar enak bang klo udh tau dana yang di habiskan brp

    BalasHapus
  70. Komentar ini telah dihapus oleh pengarang.

    BalasHapus
  71. mas mau tanya

    led nya itu pakai LED RGB biasa???

    BalasHapus
  72. mas, kalo ldr sama led nya ditaruh dimana? dicapitnya atau dimana?

    BalasHapus
  73. Mas bagaimana kalau sensor warna yg digunakan sensor TCS3200? Boleh minta penjelasannya mas.

    BalasHapus
  74. mas zain boleh minta email nya gak? saya mungkin butuh bantuan untuk membuat tugas kuliah dan saya pilih karya seperti mas zain

    BalasHapus
  75. kang saya mw buat alat pemilahan sampah organik dan non organik. untuk peralatan yang dibutuhkan apa saja browsing suka beda2 bila ada yang paham tolong dong kasih tau.makasih

    BalasHapus
  76. Situs Resmi Judi PokerV RUBYQQ.COM

    Hanya Dengan 1 USER ID anda dapat memainkan 7 GAMES !!
    BandarPoker | PokerOnline | CapsaSusun | DominoQQ | BandarQ | AduQ | SAKONG

    BEST OF THE BEST POKER ONLINE!
    PLAY REAL GAME GET REAL MONEY!

    ? Bonus Referral 10% + 10% ( Seumur Hidup )
    ? Bonus Turn Over 0,5% DI BAGIKAN SETIAP HARI !!
    ? NO ROBOT & ADMIN
    ? 100% Fair Play PLAYER Vs PLAYER
    ? Proses Deposit & Withdraw 1-2 Menit
    ? Minimal Deposit dan Withdraw Rp.15.000,-


    Buruan Daftarkan diri anda Di RubyQQ.com

    Dan Dapatkan Bonus – Bonus Menarik dari RubyQQ

    BalasHapus
  77. mas saya, lagi buat alat pemisah warna kain otomatis menggunakan sensor tcs 3200 dan konveyor ,, saya bingung cara menghentikan dulu motor dc ketika sensor akan mendeteksi warna

    BalasHapus
    Balasan
    1. seperti di youtobe conveyor belt dengan sortir warna, mohon penjelasannya terimakasih mas

      Hapus
  78. selamat malam mas, pembuatan penyortir barang berdasarkan warna ini bisa di terapkan untuk ap ya ?

    BalasHapus
  79. Kalau pake servo Mg 995 bisa kha ???

    BalasHapus
  80. Alhamdulillah..
    Sungguh bermanfaat ilmu pengetahuan ini
    Semoga penulisnya slalu mendapatkan keberkahan Allah SWT
    Yg sdh meluangkan wktu membuat blog ini.
    Begitupun respon jawaban dari setiap pertanyaan terjawab detail...
    Kpd penulis saya hanya bisa ucapkan Terima Kasih yg sebesar besar nya
    Semoga smakin banyak org org yg bersedia memberikan ilmu nya
    Terima Kasih.

    BalasHapus