Sabtu, 06 Februari 2016

Robot Line Follower Digital Menggunakan Arduino (Simple Robot Line Tracking Arduino)



Skema Lengkap Line follower Digital IC Komparator

Pada skema lengkap robot line follower didesain dengan posisi sensor di atas permukaan putih. Dua buah sistem sensor di pasang pada pin Analog Input A0 dan A1, sedangkan sistem actuator motor DC dipasang pada Port 9 dan 6 untuk motor kiri, PORT 5 dan 3 untuk motor kanan. Prinsip kerja robot line follower berikut adalah saat sistem sensor berada di atas permukaan putih, akan ada pantulan cahaya dari LED yang akan mengenai sensor cahaya LDR sehingga resistansi sensor LDR berkurang sehingga arus bergerak melalui LDR. Kondisi tersebut menyebabkan arus output sensor menuju IC komparator LM 393 menjadi minimum, oleh IC LM 393, arus di non-inverting sehingga output menuju pin Arduino menjadi LOW (0). Sebaliknya, saat sistem sensor berada di atas garis hitam, tidak akan ada pantulan cahaya dari LED yang akan mengenai sensor cahaya LDR sehingga resistansi sensor LDR sangat besar sehingga arus tidak akan melalui LDR. Kondisi tersebut menyebabkan arus output sensor menuju IC komparator LM 393 menjadi maksimum, oleh IC LM 393, arus di non-inverting sehingga output menuju pin Arduino menjadi HIGH (1). Oleh Arduino data logika pin tersebut kemudian diolah untuk mengerakan motor, motor akan bergerak jika kedua pin motor tersebut memiliki beda polaritas. Selengkapnya mengenai logika gerak robot dapat dilihat pada Tabel 1 dan 2.

Tabel 21Kondisi Gerak Motor dan pengaruh Sensor
Kondisi
A0 = 0
A0 =1
A1 = 0
Maju
Belok Kiri
A1 = 1
Belok Kanan
Mundur

Tabel 2 Kondisi Gerak Motor dan Kondisi Logika Tiap Pin Motor
Kondisi
PORT 9
PORT 6
PORT 5
PORT 3
Maju
LOW
HIGH
LOW
HIGH
Belok Kiri
HIGH
LOW
LOW
HIGH
Belok Kanan
LOW
HIGH
HIGH
LOW
Mundur
HIGH
LOW
HIGH
LOW
 Gambar 1 Desain simulasi Proteus robot line follower digital

Gambar 1 adalah desain lengkap robot line follower digital dengan dua sensor cahaya dan komparator menggunakan board Arduino Uno. Sensor cahaya dihubungkan pada PORT Analog Input A0 dan A1 board Arduino, sedangkan input motor driver IC L293D terhubung dengan PORT yaitu 9, 6, 5, dan 3 Board Arduino.

Membuat Program Robot Line Follower Digital Menggunakan IDE Arduino

1    Susun rangkaian robot line follower digital menggunakan dua buah sensor seperti gambar berikut:

Gambar 2 Desain Fritzing rangkaian robot line follower digital

1. Hubungkan Arduino ke komputer dengan kabel USB.   
2. Buka software Arduino, dan ketik program berikut:

//ROBOT LINE FOLLOWER DIGITAL
//DILENGKAPI LCD DAN KOMUNIKASI SERIAL

#include
LiquidCrystal lcd(13,12,11,10,8,7);
int kiriA = 9;
int kiriB = 6;
int kananA = 5;
int kananB = 3;

void setup()
{
  lcd.begin(16,2);
  Serial.begin(9600);
  pinMode(kiriA,OUTPUT);
  pinMode(kiriB,OUTPUT);
  pinMode(kananA,OUTPUT);
  pinMode(kananB,OUTPUT);
  pinMode(A0,INPUT);
  pinMode(A1,INPUT);

}

void loop()
{
  int kiri = digitalRead(A0);
  int kanan = digitalRead(A1);

 //HIGH=hitam, LOW=putih

  if ((kiri==HIGH)&&(kanan==LOW))
  {
    digitalWrite(kiriA,HIGH);
    digitalWrite(kiriB,LOW);
    digitalWrite(kananA,LOW);
    digitalWrite(kananB,HIGH);

    //LCD Program
    lcd.clear();
    lcd.setCursor(0,0);
    lcd.print("i=hitam a=putih");
    lcd.setCursor(0,1);
    lcd.print("BELOK KIRI");

    //Serial Program
    Serial.println("Sensor Kiri Hitam & Sensor Kanan Putih");
    Serial.println("BELOK KIRI");
  }
  else if ((kiri==LOW)&&(kanan==HIGH))
  {
    digitalWrite(kiriA,LOW);
    digitalWrite(kiriB,HIGH);
    digitalWrite(kananA,HIGH);
    digitalWrite(kananB,LOW);
    //LCD Program
    lcd.clear();
    lcd.setCursor(0,0);
    lcd.print("i=putih a=hitam");
    lcd.setCursor(0,1);
    lcd.print("BELOK KANAN");

    //Serial Program
    Serial.println("Sensor Kiri Putih & Sensor Kanan Hitam");
    Serial.println("BELOK KANAN");
  }
  else if ((kiri==HIGH)&&(kanan==HIGH))
  {
    digitalWrite(kiriA,HIGH);
    digitalWrite(kiriB,LOW);
    digitalWrite(kananA,HIGH);
    digitalWrite(kananB,LOW);
    //LCD Program
    lcd.clear();
    lcd.setCursor(0,0);
    lcd.print("i=hitam a=hitam");
    lcd.setCursor(0,1);
    lcd.print("MUNDUR");

    //Serial Program
    Serial.println("Sensor Kiri Hitam & Sensor Kanan Hitam");
    Serial.println("MUNDUR");
  }

  else
  {
    digitalWrite(kiriA,LOW);
    digitalWrite(kiriB,HIGH);
    digitalWrite(kananA,LOW);
    digitalWrite(kananB,HIGH);
    //LCD Program
    lcd.clear();
    lcd.setCursor(0,0);
    lcd.print("i=putih a=putih");
    lcd.setCursor(0,1);
    lcd.print("MAJU");

    //Serial Program
    Serial.println("Sensor Kiri Putih & Sensor Kanan Putih");
    Serial.println("MAJU");
  }

}

3. Pilih Board dan Serial PORT yang digunakan di menu Tools. 
4. Tekan tombol Verify dipojok kiri toolbar. Setelah muncul pesan “Done Compiling”, selanjutnya tekan tombol Upload yang ada di kanan tombol Verifysampai muncul pesan “Done Uploading”
.
Gambar 3 Output program robot line follower menggunakan Arduino Uno

Saat kedua sensor berada dipermukaan putih maka robot akan bergerak maju, jika sensor kiri berada diatas garis hitam sedangkan sensor kanan di permukaan putih maka robot akan berbelok ke kiri, begitupula saat jika sensor kanan berada diatas garis hitam sedangkan sensor kiri di permukaan putih maka robot akan berbelok ke kanan, sehingga robot akan senantiasa berada menelusuri garis hitam.

Bentuk Robot Line Follower Digital Berbasis Sensor Cahaya

Gambar 4 Bentuk jadi robot line follower menggunakan Mikrokontroler Arduino
Share:
Read More

Program Arduino Blinking LED


Langkah untuk membuat blinking LED, telah dibahas sedikit di pembahasan sebelumnya menggunakan satu buah LED. Maka pada bab ini akan dibahas blinking LED menggunakan lebih dari satu LED. Tahapan pembuatan blinking LED adalah sebagai berikut:








Gambar 1 Desain blinking LED menggunakan Fritzing.


Gambar 2 Simulasi Proteus blinking LED menggunakan Arduino

21. Hubungkan Arduino ke komputer dengan kabel USB.
32. Buka software Arduino, dan ketik program berikut:
//Mendefinisikan pin

int merah = 13;
int kuning = 12;
int hijau = 11;
int biru = 10;

void setup()
// mendefinisikanmode pin sebagai output
{
  pinMode(merah, OUTPUT);
  pinMode(kuning,OUTPUT);
  pinMode(hijau,OUTPUT);
  pinMode(biru,OUTPUT);
}

void loop()
{
  digitalWrite(merah, HIGH); // merah menyala
  digitalWrite(kuning,HIGH); //kuning menyala
  digitalWrite(hijau,LOW); //hijau mati
  digitalWrite(biru,LOW);  //biru mati
  delay(1000); //selama 1 detik
  digitalWrite(merah, LOW); //merah mati
  digitalWrite(kuning,LOW); //kuning mati
  digitalWrite(hijau,HIGH); //hijau menyala
  digitalWrite(biru,HIGH);  //biru menyala
  delay(1000); //selama 1 detik
}

43. Pilih Board dan Serial PORT yang digunakan di menu Tools.
54. Tekan tombol Vverify dipojok kiri toolbar.
65. Setelah muncul pesan “Done Compiling”, selanjutnya tekan tombol Upload yang ada di kanan tombol Verify.
76.Setelah muncul pesan “Done Uploading”, kita dapat menguji program tersebut dengan melihat LED, dimana LED merah dan kuning akan menyala dan LED hijau dan biru mati selama satu detik, kemudian akan berganti LED merah dan kuning akan mati sedangkan LED hijau dan biru menyala selama satu detik, dan seterusnya hingga power dilepas.


Gambar 3. LED menyala secara bergantian.
Share:
Read More

Pengertian Arduino dan Physical Computing



Physical computing adalah membuat sebuah sistematau perangkat fisik dengan menggunakan software dan hardware yang sifatnya interaktif yaitu dapat menerima rangsangan dari lingkungan dan merespon balik. Physical computing adalah sebuah konsep untuk memahami hubungan antara lingkungan yang sifat alaminya adalah analog dengan dunia digital. Pada prakteknya konsep ini diaplikasikan dalam desain-desain alat atau projek-projek yang menggunakan sensor dan mikrokontroler untuk menerjemahkan input analog ke dalam sistem softwareuntuk mengontrol alat-alat elektromekanik seperti lampu, motor dan sebagainya.

Prototyping adalah kegiatan yang sangat penting di dalam proses physical computing karena pada tahap inilah seorang perancang melakukan eksperimen dan uji coba dari berbagai jenis komponen, ukuran, parameter, program komputer dan sebagainya berulang-ulang kali sampai diperoleh kombinasi yang paling tepat. Dalam hal ini perhitungan angka-angka dan rumus yang akurat bukanlah satu-satunya faktor yang menjadi kunci sukses di dalam mendesain sebuah alat karena ada banyak faktor eksternal yang turut berperan, sehingga proses mencoba dan mengoreksi kesalahan perlu melibatkan hal-hal yang sifatnya non-eksakta. Prototyping adalah gabungan antara akurasi perhitungan dan seni.

Proses prototyping bisa menjadi sebuah kegiatan yang menyenangkan atau menyebalkan, itu tergantung bagaimana kita melakukannya. Misalnya jika untuk mengganti sebuah komponen elektronika, merubah ukurannya atau merombak kerja sebuah prototype dibutuhkan usaha yang besar dan waktu yang lama, mungkin prototyping akan sangat melelahkan karena pekerjaan ini dapat dilakukan berulang-ulang sampai puluhan kali – bayangkan betapa frustasinya perancang yang harus melakukan itu. Idealnya sebuah prototype adalah sebuah sistem yang fleksibel dimana perancang bisa dengan mudah dan cepat melakukan perubahan-perubahan dan mencobanya lagi sehingga tenaga dan waktu tidak menjadi kendala berarti. Dengan demikian harus ada sebuah alat pengembangan yang membuat proses prototyping menjadi mudah.

Saat bekerja dengan hardware berarti membuat rangkaian menggunakan berbagai komponen elektronik seperti resistor, kapasitor, transistor dan sebagainya. Setiap komponen disambungkan secarafisik dengan kabel atau jalur tembaga yang disebut dengan istilah “hard wired” sehingga untuk merubah rangkaian maka sambungan-sambungan itu harus diputuskan dan disambung kembali. Dengan hadirnya teknologi digital dan microprocessor fungsi yang sebelumnya dilakukan dengan hired wired digantikan dengan program-program software. Ini adalah sebuah revolusi di dalam proses prototyping. Software lebih mudah diubah dibandingkan hardware, dengan beberapa penekanan tombol kita dapat merubah logika alat secara radikal dan mencoba versi ke-dua, ke-tiga dan seterusnya dengan cepat tanpa harus mengubah pengkabelan dari rangkaian.

 Gambar 1. Kegiatan prototyping

Arduino dikatakan sebagai sebuah platform dari physical computing yang bersifat open source. Pertama-tama perlu dipahami bahwa kata “platform” di sini adalah sebuah pilihan kata yang tepat. Arduino tidak hanya sekedar sebuah alat pengembangan, tetapi ia adalah kombinasi dari hardware, bahasa pemrograman dan Integrated Development Environment (IDE) yang canggih. IDE adalah sebuah software yang sangat berperan untuk menulis program, mengkompilasi menjadi kode biner dan meng-upload ke dalam memori mikrokontroler. Ada banyak proyek dan alat-alat dikembangkan oleh akademisi dan profesional dengan menggunakan Arduino, selain itu juga ada banyak modul-modul pendukung (sensor, tampilan, penggerak dan sebagainya) yang dibuat oleh pihak lain untuk bisa disambungkan dengan Arduino. Arduino berevolusi menjadi sebuah platform karena ia menjadi pilihan dan acuan bagi banyak praktisi.

Salah satu yang membuat Arduino memikat hati banyak orang adalah karena sifatnya yangopen source, baik untuk hardware maupun software-nya. Diagram rangkaian elektronik Arduino digratiskan kepada semua orang. Anda bisa bebas men-download gambarnya, membeli komponen-komponennya, membuat PCB-nya dan merangkainya sendiri tanpa harus membayar kepada para pembuat Arduino. Sama halnya dengan IDE Arduino yang bisa di-download dan di-install pada komputer secara gratis.

Arduino dikembangkan oleh sebuah tim yang beranggotakan orang-orang dari berbagai belahan dunia. Anggota inti dari tim ini adalah: Massimo Banzi Milano (Italia), David Cuartielles Malmoe (Swedia), Tom Igoe New York (AS), Gianluca Martino Torino (Italia), dan David A. Mellis Boston (AS).Saat ini komunitas Arduino berkembang dengan pesat dan dinamis di berbagai belahan dunia. Bermacam-macam kegiatan yang berkaitan dengan projek-projek Arduino bermunculan dimana-mana, termasuk di Indonesia. Yang membuat Arduino dengan cepat diterima oleh orang-orang adalah karena:
1.   Murah, dibandingkan platform yang lain. Harganya akan lebih murah lagi jika pengguna membuat papannya sendiri dan merangkai komponen-komponennya satu per satu.
2.    Lintas platform, software Arduino dapat dijalankan pada sistem operasi Windows, Macintosh OS/X dan Linux, sementara platform lain umumnya terbatas pada Windows.
3.    Sangat mudah dipelajari dan digunakan. Arduino menggunakan bahasa C/C++ yang disederhanakan, yang merupakan turunan dari proyek open source Wiring. Pengguna yang sudah terbiasa dengan bahasa C/C++ dan JavaScript tidak akan menemui kesulitan dalam menulis program untuk Arduino.
4.      Sistem yang terbuka (open source), baik dari sisi hardware maupun software-nya.
Sangat menarik ketika membuka kotak pembungkus papan Arduino terdapat tulisan bahwa Arduino diperuntukan bagi seniman, perancang dan penemu. Sungguh membesarkan hati dan membangkitkan semangat bahwa penggunanya tidak harus teknisi berpengalaman atau ilmuwan berotak jenius.
Share:
Read More