Robot LineFollower dengan Module Arduino Indo-Ware

dokumen-dokumen yang mirip
Robot LineFollower dengan Module Arduino Indo-Ware

BAB IV PENGUJIAN DAN ANALISIS

PANDUAN PRAKTIKUM DASAR ARDUINO

BAB IV PENGUJIAN ALAT DAN PEMBAHASAN

KRCT [MODUL WORKSHOP 1] TANJUNGPINANG 2012 KONTES ROBOT CERDAS

DAFTAR PUSTAKA. Suhat.ST.2005.VB Sebagai Pusat Kendali Peralatan Elektronik. Penerbit PT. Elex Media Komputindo Kelompok Gramedia. Jakarta.

Pengenalan Sensor Ultrasonic SRF05 dengan Arduino Sketch. Sensor Ultrasonic SRF05

BAB IV ANALISA DAN PENGUJIAN DATA

BAB IV PENGUJIAN ALAT DAN ANALISA

BAB III PERANCANGAN DAN PEMBUATAN ALAT

BAB III PERANCANGAN. AMR_Voice Smartphone Android. Module Bluetooth untuk komunikasi data. Microcontroller Arduino Uno. Motor Servo untuk Pintu

JOBSHEET 5. Motor Servo dan Mikrokontroller

BAB IV HASIL DAN UJI COBA

BAB V. IMPLEMENTASI DAN PENGUJIAN

BAB IV ANALISA DAN PENGUJIAN

BAB IV HASIL DAN UJI COBA

BAB IV PENGUJIAN DAN ANALISA RANGKAIAN

Logika pemrograman sederhana

BAB 3 PERANCANGAN SISTEM. Computer. Parallel Port ICSP. Microcontroller. Motor Driver Encoder. DC Motor. Gambar 3.1: Blok Diagram Perangkat Keras

PANDUAN PRAKTIKUM DASAR ARDUINO

BAB III METODE PENELITIAN

BAB IV PENGUJIAN ALAT DAN PEMBAHASAN

BAB IV IMPLEMENTASI DAN PENGUJIAN

BAB IV PERANCANGAN ALAT

BAB IV PENGUJIAN DAN ANALISA

BAB IV PENERAPAN DAN ANALISA

BAB IV PENGUJIAN ALAT DAN ANALISA

PANDUAN PRAKTIKUM DASAR ARDUINO

MODUL PRAKTIKUM ROBOTIKA. Program Studi Sistem Komputer STMIK STIKOM Indonesia

BAB III PERANCANGAN SISTEM

BAB III PERANCANGAN ALAT

BAB IV PENERAPAN DAN ANALISA

BAB IV PERANCANGAN. 4.1 Flowchart

BAB IV ANALISA DAN PENGUJIAN ALAT

PANDUAN PRAKTIKUM DASAR ARDUINO

BAB III PERANCANGAN DAN PEMBUATAN ALAT

BAB III METODE PENELITIAN. alat pendeteksi frekuensi detak jantung. Langkah langkah untuk merealisasikan

EMDEDDED ARRAY SENSOR UNTUK LINE FOLLOWING ROBOT

PANDUAN PRAKTIKUM DASAR ARDUINO

BAB IV PERANCANGAN ALAT

BAB IV PENGUJIAN DAN ANALISA

4.1.2 Implementasi Sistem Setelah melakukan analisis dan perancangan sistem yang telah dibahas, maka untuk tahap selanjutnya adalah implementasi siste

BASIC MOBILE ROBOT ARDUINO Kelengkapan Nama Jumlah Unit 2 mm Akrilik Base Board 2 Pcs

BAB III PERANCANGAN DAN PEMBUATAN ALAT. Pada bab III ini menjelaskan mengenai konsep perancangan alat Monitoring Arus dan

BAB IV HASIL DAN PENGUJIAN ALAT

BAB IV HASIL DAN UJI COBA

BAB IV ANALISA DAN PENGUJIAN ALAT

BAB III PERANCANGAN DAN PEMBUATAN HAND ROBOT

BAB III PERENCANAAN DAN PEMBUATAN ALAT

BAB III METODE PENELITIAN. diperlukan dengan beberapa cara yang dilakukan, antara lain:

PANDUAN PRAKTIKUM DASAR ARDUINO

BAB III PERANCANGAN DAN PEMBUATAN ALAT. 3.1 Blok ahap ini akan diketahuin alurdiagram Rangkaian

BAB IV PENGUJIAN ALAT DAN ANALISA

BAB III PERANCANGAN. Pada bab ini akan dibahas mengenai beberapa hal dasar tentang bagaimana. simulasi mobil automatis dirancang, diantaranya adalah :

DT-AVR DT-AVR Application Note

PENGENALAN ARDUINO. SPI : 10 (SS), 11 (MOSI), 12 (MISO), 13 (SCK). Pin-pin ini mensupport komunikasi SPI menggunakan SPI library.

BAB IV HASIL DAN UJI COBA

BAB IV HASIL DAN UJI COBA

BAB III PERANCANGAN SISTEM

BAB IV HASIL DAN UJI COBA

DQI-03 DELTA ADC. Dilengkapi LCD untuk menampilkan hasil konversi ADC. Dilengkapi Zero offset kalibrasi dan gain kalibrasi

BAB IV PENGUJIAN DAN ANALISA RANGKAIAN

BAB IV PENGUJIAN DAN ANALISA

BAB II DASAR TEORI Arduino Mega 2560

BAB III PERANCANGAN PERANGKAT KERAS MOBILE-ROBOT

BAB IV PENGUJIAN DAN ANALISA ALAT

BAB IV HASIL PERANCANGAN DAN PENGUJIAN ALAT

BAB II LANDASAN TEORI

BAB IV HASIL DAN UJI COBA

BAB IV. PERANCANGAN. Blok diagram menggambarkan cara kerja semua sistem E-dump secara keseluruhan yang terdiri dari beberapa komponen:

BAB IV PENGUJIAN DAN ANALISA RANGKAIAN

Praktikum II LED dan PUSH BUTTON

Light Dependent Resistor LDR Menggunakan Arduino Uno Minsys

BAB III PERANCANGAN ALAT DAN PROGRAM

BAB IV HASIL DAN UJI COBA

Analog to Digital Convertion Menggunakan Arduino Uno Minsys

BAB IV PENGUJIAN DAN ANALISA ALAT

BAB III METODOLOGI PENELITIAN. Adapun untuk gambar dan penjelasan dari blok diagram dari alat dapat dilihat pada. Modul sensor.

BAB III METODE PENELITIAN DAN PERANCANGAN SISTEM

BAB IV HASIL DAN UJI COBA

BAB IV HASIL DAN UJI COBA

BAB III PERENCANAAN DAN PERANCANGAN

BAB III PERANCANGAN SISTEM

TOILET PINTAR ABSTRAK

PANDUAN PRAKTIKUM DASAR ARDUINO

BAB III PERANCANGAN SISTEM

BAB III PERENCANAAN PERANGKAT KERAS DAN LUNAK

BAB II DASAR TEORI. mikrokontroler yang berbasis chip ATmega328P. Arduino Uno. memiliki 14 digital pin input / output (atau biasa ditulis I/O,

BAB IV PENGUJIAN DAN PEMBAHASAN

DT-SENSE Application Note

BAB IV PENGUJIAN DAN ANALISA RANGKAIAN

BAB IV IMPLEMENTASI DAN PENGUJIAN

BAB II DASAR TEORI. Gambar 1.1 Board NodeMcu

PANDUAN PRAKTIKUM DASAR ARDUINO

PERANCANGAN ROBOT OKTAPOD DENGAN DUA DERAJAT KEBEBASAN ASIMETRI

BAB II TEORI DASAR. kaldu. Terobosan konsep terjadi sekitar tahun 1782, ketika restaurant yang

BAB III PERANCANGAN ALAT

BAB III ANALISIS DAN DESAIN SISTEM

BAB IV ANALISA DAN PENGUJIAN ALAT

BAB III PERANCANGAN SISTEM

Transkripsi:

Robot LineFollower dengan Module Arduino Indo-Ware LineFollower adalah jenis robot beroda yang dapat mengikuti garis yang biasa dibuat warna hitam untuk garisnya, dan putih untuk bagian lapangannya. Perbedaan yang sangat kontras itu dijadikan acuan dalam membuat logika waktu memprogramnya. Di dalam pembahasan kali ini Robot yang dibuat menggunakan ModuleArduino produksi dari Indo-Ware, modul sensor garis dan motor sero sebagai penggeraknya. Berikut bentuk dari robot: Gambar 1. Robot LineFollower

Berikut asing-masing bagian dari robot: 3 4 2 1 4 Gambar 2. Bagian Robot tampak atas 8 5 6 7 Gambar 3. Bagian Robot tampak bawah

Keterangan bagian robot: 1. ModuleMikrokontroler 2. PushBotton 3. Batteray 4. Roda belakang 5. Sensor Garis 6. Roda bebas depan 7. Motor Servo 8. Mekanik Agar robot dapat berjalan pertama kita harus dapat membaca data dari sensor, kemudian mengolah data tersebut hingga dapat menjadi sebuah pemicu penggerak dari servo. Untuk dapat membaca sensor berikut ode program menggunakan arduino: constint sensor1 = A0; //////mendeklarasikan sensor1 sebagai PIN A0 constint sensor2 = A1; //////mendeklarasikan sensor2 sebagai PIN A1 int data1 = 0; //sebuah wadah dengan nama data1 yang bertipe data integer dan diisi dengan nilai 0 int data2 = 0; //sebuah wadah dengan nama data2 yang bertipe data integer dan diisi dengan nilai 0 void setup() { Serial.begin(9600); //sebagai pengatur kecepatan baut ratemikrokontroler voidloop(){ data1 = analogread(sensor1); //baca sensor1 kemudian masukkan datanya ke dalam data1 data2 = analogread(sensor2); //baca sensor1 kemudian masukkan datanya ke dalam data2 Serial.print("data 1 = "); //kirim ke PC data 1 = Serial.print(data1); //kirim data1 (yang dikirim adalah nilai yang sudah dimasukkan tadi) Serial.print(" data 2 = "); Serial.println(data2); //kirim data2 kemudian ganti baris delay(2); //tunda selama 2mS

Setelah kita bisa membaca data kemudian kita harus bisa mengkonversinya menjadi sebuah pemicu agar servo dapat bergerak. Servo ini berputar 360 derajat, dengan mengirim nilai 0-90 dia akan berputar ke kiri, sedangkan jika data yang dikirim antara 91-180 maka dia akan berputar ke arah kanan. Dengan acuan tersebut dapat disimpulkan bahwa agar robot nantinya data bergerak maju mengikuti garis maka servo kanan dan kiri diberi data yang berbeda karena pemasangan mekanik servo kanan berbanding terbalik dengan servo kiri. Dalam pembahasan kali ini servo robot sebelah kanan dihubungkan ke PORT Digital 9, sedangkan servo robot sebelah kiri dihubungkan ke PORT Digital 3. Dengan demikian maka agar robot bergerak maju, servo kanan harus diberi nilai data antara 91-180 sedangkan servo kiri harus diberi data antara 90-0. Dalam code program di sini digunakan libraryservo.h bawaan dari SoftwareArduino. Berikut code program untuk menggerakkan servo, namun sudah ditambah agar dapat menggerakkan 2 servo sekaligus. #include<servo.h> Servo myservo1; // createservoobjecttocontrol a servo Servo myservo2; // createservoobjecttocontrol a servo int pos = 0; // variabletostoretheservoposition void setup() { myservo1.attach(9); // attachestheservo on pin 9 totheservoobject myservo2.attach(3); voidloop() { for (pos = 0; pos <= 180; pos += 1) { // goesfrom 0 degreesto 180 degrees // insteps of 1 degree 'pos' myservo1.write(pos); myservo2.write(pos); // tellservotogotopositioninvariable delay(100); theservotoreachtheposition // waits 15ms for

for (pos = 180; pos >= 0; pos -= 1) { // goesfrom 180 degreesto 0 degrees 'pos' myservo1.write(pos); myservo2.write(pos); // tellservotogotopositioninvariable delay(100); theservotoreachtheposition // waits 15ms for Setelah bisa membaca data dari sensor dan menggerakkan servo, maka keduanya kita gabungkan agar robot dapat berjalan mengikuti garis. Berikut contoh code programnya: #include<servo.h> //libraryservo Servoservo_kanan; //membuat sebuah nama untuk servo, di sini dinakamanservo_kanan Servoservo_kiri; // membuat sebuah nama untuk servo, di sini dinakamanservo_kanan constint sensor1 = A0; //mendeklarasikan nama sensor1 sebagai PIN A0 constint sensor2 = A1; //mendeklarasikan nama sensor2 sebagai PIN A1 constint tombol = 12; //mendeklarasikan nama tombol sebagai PIN Digital 12 constintled = 7; //mendeklarasikan nama led sebagai PORT Digital 7 int data1 = 0; //membuat sebut tempat data dengan nama data1 bertipe data integer dengan nilai awal 0. int data2 = 0; //membuat sebut tempat data dengan nama data2 bertipe data integer dengan nilai awal 0. intkecepatan_kanan = 0; //membuat sebut tempat data dengan nama kecepatan_kanan bertipe data integer dengan nilai awal 0. intkecepatan_kiri = 0; intmotor_kanan = 0; intmotor_kiri = 0; int start = 0; void setup() { servo_kanan.attach(9); //mendeklarasikan servo kanan terhubung pada PORT Digital 9 servo_kiri.attach(3); //mendeklarasikan servo kanan terhubung pada PORT Digital 3 Serial.begin(9600); pinmode(led, OUTPUT); //mengkondisikan PORT led sebagai OUTPUT pinmode(tombol, INPUT); //mengkondisikan PORT tombol sebagai INPUT voidbaca_sensor(){ //sup bagian bernama baca sensor, didalamnya terdapat program untuk membaca sensor data1 = analogread(sensor1); // baca sensor1 kemudian masukkan nilainya dalam data1 data2 = analogread(sensor2); // baca sensor2 kemudian masukkan nilainya dalam data2

if(data1 > 540){ //sebagai pembatas batas atas data1 data1 = 540; if(data2 > 540){ ////sebagai pembatas batas atas data2 data2 = 540; void kondisi(){ // sub bagian bernama kondisi, berisi kondisi sensor yang dibandingkan dengan motor baca_sensor(); //panggil sub bagian kondisi kecepatan_kanan = data1/6; //data1 dibagi 6 kemudian masukkan ke kecepatan kanan kecepatan_kiri = data2/6; //data2 dibagi 6 kemudian masukkan ke kecepatan kiri motor_kanan = 180 - kecepatan_kanan; //motor kanan diisi dengan hasil pengurangan nilai 180 dengan kecepatan kanan untuk mendapatkan kecepatan motor kanan motor_kiri = 0 + kecepatan_kiri; //motor kiri diisi dengan hasil penjumlahan nilai 0 dengan kecepatan kiri untuk mendapatkan kecepatan motor kiri if(motor_kanan<= 91){ //batas untuk kecepatan motor kanan sehingga tidak menyebabkan motor berputar terbalik motor_kanan = 91; if(motor_kiri>= 90){//batas untuk kecepatan motor kanan sehingga tidak menyebabkan motor berputar terbalik motor_kiri = 90; Serial.print("data 1 = "); Serial.print(motor_kanan); Serial.print(" data 2 = "); Serial.println(motor_kiri); delay(2); voidloop() { //sub bagian bernama lop karena di sini program akan berulang terus menerus kondisi(); //panggil sub bagian bernama kondisi servo_kanan.write(motor_kanan); //motor kanan berputar sesuai kecepatan servo_kiri.write(motor_kiri);//motor kiri berputar sesuai kecepatan Berikut penjelasan bagaimana code program berjalan: Pertama baca sensor dengan ADC (Analog to Digital Converter), jika sudah didapatkan data maka dapat diolah untuk acuan kecepatan motor. Dalam pembahasan kali ini nilai hasil pembacaan nilai data antara 30-560. Sedangkan agar robot dapat bergerak maju nilai data yang diberikan ke motor kanan dan kiri berbeda. Jika motor kanan data yang diminta antara 91-180, sedangkan motor sebalah kiri antara 90-0. Dengan demikian rentang data entahlah 90, sehingga ini dijadikan acuan untuk pembanding nilai dengan sensor. Dalam hal ini nilai sensor akan semakin kecil nilai datanya jika terkena garis hitam, sedangkan jika terkena garis putih nilai data akan semakin besar, berikut gambarannya :

Gambar 4. Proses pantulan cahaya Dari gambar di atas maka dapat dipahami mengapa terjadi perubahan nilai data saat sensor terkena garis hitam, hal itu disebabkan karena intensitas cahaya pantulan berkurang. Kemudian kita bandingkan dengan nilai data motor, nilai yang harus didapatkan adalah 0-90, untuk itu kita bagi nilai data sensor dengan nilai data motor. Dalam program diatas batas maksimal program dibatasi yaitu 540 guna mendapatkan nilai data yang pas. Untuk rumusnya pertama kita bagi nilai data sensor dengan nilai data motor. Nilai pembanding = nilai max sensor / nilai max motor Nilai pembanding = 540 / 90 Maka didapat nilai pembandingnya = 6 sehingga dapat disimpulkan setiap naik 6 data pada sensor maka naik 1 data pada kecepatan motor Karena motor kanan dan motor kiri berbeda nilainya namun yang kita punya adalah data yang sama maka diperlukan cara agar dapat menjadikannya berbeda. Motor kanan akan semakin cepat jika nilainya 180 sedangkan motor kiri akan semakin cepat jika nilainya 0. Batas minimal motor kanan adalah 91 sedangkan batas minimal kecepatan motor kiri adalah 90, sedangkan nilai yang dihasilakan dari sensor adalah setiap kenaikan 6 data pada sensor maka naik satu data pada kecepatan sehingga dengan demikian, Untuk motor kanan nilai kecepatan motor harus dikurangi jika sensor kanan semakin mengarah ke tengah garis begitu juga sebaliknya. kecepatan motor kanan = 180 (nilai data sensor kanan / 6) kecepatan motor kiri = 0 + (nilai data sensor kiri / 6) kemudian kita tinggal umpankan hasil perhitungan di atas ke masing-masing motor, dan motor akan bergerak maju mengikuti garis. Dengan cara di atas robot sudah dapat berjalan mengikuti garis, namun robot akan langsung berjalan tanpa adanya sebuah pemicu. Oleh karena itu harus ada penambahan sebuah tombol sebagai pemicu agar robot dapat berjalan. Dalam gambar sudah terdapat sebuah tombol namun di dalam ode program memang belum ada penjelasan tentang ode program tombol tersebut.

Demikian penjelasan singkat tentang robot LineFollower dengan Servosebagia motor penggeraknya.

Modul yang digunakan: Board Atmega328 dengan usb to serial TTL ch340 yang di isi firmware UNO bootloader

Support www.indo-ware.com email : support@indo-ware.com