• Tidak ada hasil yang ditemukan

IMPLEMENTASI ROBOT PEMBERSIH LANTAI DENGAN PENGENDALI SMARTPHONE MENGGUNAKAN LOGIKA FUZZY

N/A
N/A
Protected

Academic year: 2017

Membagikan "IMPLEMENTASI ROBOT PEMBERSIH LANTAI DENGAN PENGENDALI SMARTPHONE MENGGUNAKAN LOGIKA FUZZY"

Copied!
92
0
0

Teks penuh

(1)

LAMPIRAN A : LISTING PROGRAM JAVA ANDROID

public class MainActivity extends Activity implements View.OnTouchListener{

// Debugging

private static final String TAG = "BlueComm"; private static final boolean D = true;

(2)

public ArrayAdapter mArrayAdapter; public String strParam="menunggu";

// Untuk menerima message dari background thread

Handler h = new Handler() {

@Override

public void handleMessage (Message m) {

super.handleMessage(m);

if(D) Log.d(TAG, "Handle Message"); Bundle bund =m.getData();

String key = bund.getString("My Key"); }

if(D) Log.d(TAG, "On Create"); super.onCreate(savedInstanceState);

Label.setText("No bluetooth adapter available"); }

public boolean onTouch(View arg0, MotionEvent arg1) {

(3)

if(arg1.getAction()!=1){ try{

sendData(strParam); }

catch (IOException ex) { } }

if(D) Log.e(TAG, "ON START");

//Open Button

catch (IOException ex) { } }

catch (IOException ex) { } }

// Mencari Client Bluetooth yg sudah paired dengan nama

“nutscientist“ void CariBT() {

(4)

Set<BluetoothDevice> pairedDevices =

Label.setText("Slave Client Found");

//break;

} else {

Label.setText("Slave Client Not Found"); }

if(D) Log.e(TAG, "ON DESTROY"); }

// Untuk memulai/ melakukan koneksi dengan client bluetooth

void BukaBT() throws IOException {

if(D) Log.d(TAG, "Buka BT");

UUID uuid = UUID.fromString( "00001101-0000-1000-8000-00805F9B34FB"); //Standard SerialPortService ID

(5)

// Background thread untuk menerima data dari client bluetooth

void ListenForData() {

if(D) Log.d(TAG, "Listen Data");

final byte delimiter = 13; //atau Carriage Return (CR), di gunakan untuk mendeteksi akhir dari text

stopWorker = false; readBufferPosition = 0; Buffer = new byte[1024];

Thread workerThread = new Thread(new Runnable() {

System.arraycopy(Buffer, 0, encodedBytes, 0, encodedBytes.length); final String data = new String(encodedBytes, "US-ASCII");

readBufferPosition = 0;

Message m = new Message();

Bundle bund = new Bundle();

bund.putString("My Key", data);

(6)

}

// Untuk mengirim data ke client bluetooth

void sendData(String m) throws IOException {

if(D) Log.d(TAG, "Kirim Data"); mmOutputStream.write(m.getBytes()); Label.setText("Data Sent");

stat.setText(m);

//Toast.makeText(this, “Data Terkirim“, Toast.LENGTH_LONG).show();

}

// Untuk menutup/mengakhiri koneksi dengan client bluetooth

void closeBT() throws IOException {

if(D) Log.d(TAG, "Tutup BT"); stopWorker = true;

mmOutputStream.close(); mmInputStream.close(); mmSocket.close();

Label.setText("Bluetooth Closed");

//Toast.makeText(this, “Bluetooth Ditutup“, Toast.LENGTH_LONG).show();

}

(7)

Activity_main.xml:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools"

android:id="@+id/OpenButton"

android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" >

>

android:layout_alignParentTop="true" android:layout_centerHorizontal="true" android:layout_marginTop="21dp"

android:background="@drawable/arrow_top"

android:contentDescription="@drawable/arrow_top" />

<ImageButton

android:id="@+id/ButtonLeft" android:layout_width="100dp" android:layout_height="100dp"

android:layout_below="@+id/ButtonTop" android:layout_toLeftOf="@+id/ButtonTop" android:background="@drawable/arrow_left"

android:contentDescription="@drawable/arrow_left" />

<ImageButton

android:id="@+id/ButtonRight" android:layout_width="100dp" android:layout_height="100dp"

android:layout_below="@+id/ButtonTop" android:layout_toRightOf="@+id/ButtonTop" android:background="@drawable/arrow_right"

android:contentDescription="@drawable/arrow_right" />

<ImageButton

android:id="@+id/ButtonBelow" android:layout_width="100dp" android:layout_height="100dp"

android:layout_below="@+id/ButtonRight" android:layout_toLeftOf="@+id/ButtonRight" android:background="@drawable/arrow_below" />

<Button

android:id="@+id/ButtonOpen"

android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignLeft="@+id/ButtonLeft" android:layout_below="@+id/ButtonBelow" android:layout_marginTop="35dp"

(8)

<Button

android:id="@+id/ButtonClose" android:layout_width="wrap_content" android:layout_height="wrap_content"

android:layout_alignBaseline="@+id/ButtonOpen" android:layout_alignBottom="@+id/ButtonOpen" android:layout_alignRight="@+id/ButtonRight" android:text="@string/Close"

android:textColor="@color/close" />

<TextView

android:id="@+id/label"

android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_above="@+id/ButtonClose" android:layout_centerHorizontal="true" android:layout_marginBottom="7dp" android:text="@string/app_name" />

<TextView

android:id="@+id/textViewStatus" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_below="@+id/ButtonOpen" android:layout_centerHorizontal="true" android:layout_marginTop="32dp"

android:text="TextView" />

<TextView

android:id="@+id/textViewAction" android:layout_width="wrap_content" android:layout_height="wrap_content"

android:layout_alignLeft="@+id/textViewStatus" android:layout_below="@+id/textViewStatus" android:layout_marginTop="8dp"

(9)

#include <mega32.h>

// Declare your global variables here

(10)

int i=0;

void main(void) {

// Declare your local variables here

// Input/Output Ports initialization // Port B initialization

// Func7=In Func6=In Func5=In Func4=In Func3=In Func2=Out Func1=Out Func0=Out

// State7=T State6=T State5=T State4=T State3=T State2=0 State1=0 State0=0

PORTB=0x00; DDRB=0xFE;

// Port C initialization

// Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In // State6=T State5=T State4=T State3=T State2=T State1=T State0=T PORTC=0x00;

DDRC=0xFF;

// Port D initialization

// Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In

// State7=T State6=T State5=T State4=T State3=T State2=T State1=T State0=T

PORTD=0x00; DDRD=0xFE;

// Timer/Counter 0 initialization // Clock source: System Clock // Clock value: Timer 0 Stopped TCCR0=0x00;

TCNT0=0x00;

// Timer/Counter 1 initialization // Clock source: System Clock // Clock value: 11,719 kHz // Mode: Fast PWM top=0x00FF // OC1A output: Non-Inv. // OC1B output: Non-Inv. // Noise Canceler: Off

(11)

// Clock value: Timer2 Stopped

// Communication Parameters: 8 Data, 1 Stop, No Parity // USART Receiver: On

(12)

mundur(); delay_ms(100);

// printf("mundur \n");

}

else if(der == 'R' || der == 'r'){ b_kanan();

delay_ms(100);

// printf("right \n"); }

else if(der == 'L' || der == 'l'){ b_kiri();

delay_ms(100);

// printf("left \n"); }

else {

delay_ms(100); // printf("%c \n",der);

}

// printf("mundur"); stop();

}

(13)

Nama : Edo Affan

Alamat Sekarang : Jl. Bakhti No. 30 Delitua, Deli Serdang Medan

Alamat Orang Tua : Jl. Bakhti No. 30 Delitua, Deli Serdang Medan

Telp/Hp : - / 082167673216

Email : edo.fan8@gmail.com

Riwayat Pendidikan

1998 –2004 : SD Negeri 101800 Delitua Medan

2004 – 2007 : SMP Negeri 1 Delitua Medan

2007 – 2010 : SMA Negeri 1 Delitua Medan

2010 – 2015 : S1 Ilmu Komputer Fasilkom-TI Universitas Sumatera Utara,

Medan

Keahlian

(14)

Ardiansyah, Rezky. 2011. In System Programming AVR Menggunakan Koneksi Bluetooth. Jurnal Surabaya: Universitas Katolik Widya Mandala Surabaya.

Chanana, Aanchal. 2012. Research on Bluetooth Technology. International Journal of Innovative Technology and Exploring Engineering (IJITEE). Vol.1 no.6 . hal 36-41. ISSN: 2278-3075

Grunberg, david. 2010. Development of an Autonomous Dancing Robot. International Journal of Hybrid Information Technology: Department of Electrical and Computer Engineering. Vol.3, No.2. hal 33-44.

Nurmaini, Siti. 2012. Modeling of Mobile Robot System with Control Strategy Based on Type-2 Fuzzy Logic. Vol 2. No3. International Journal of Information and

Communication Technology Research. Computer Engineering Department, Faculty of Computer Science, Sriwijaya University. Hal 235-241. ISSN: 2223-4985

Singh, Pratibha. 2011. A Modern Study Of Bluetooth Wireless Technology. International Journal Of Computer Science, Engineering and Information Technology. Vol.1, No.3 hal 55-63. DOI : 10.5121/ijcseit.2011.1306

Indriyanto, Cholik. 2015. Perancangan Sistem Kendali Remote Control Robot Mobil Menggunakan Smartphone Android. Researchgate: Universitas Sumatera Utara.

Budiharto, Widodo. 2010 .Elektronik Digital dan Mikroprosesor: Yogyakarta: Penerbit Andi.

Budiharto, Widodo. 2010 . Robotika Teori dan Impelemtasi . Yogyakarta: Andi Offset.

Kusumadewi, S. & Purnomo, H.2013. Aplikasi Logika Fuzzy untuk Pendukung Keputusan. Edisi 2. Graha Ilmu : Yogyakarta

Kuswadi, Son. 2007. Kendali Cerdas Teori dan Aplikasi Praktisnya. Yogyakarta: Penerbit Andi.

(15)

Makanan Berbasis Mikrokontroller ATMega32 Menggunakan Algoritma

Fuzzy. Skripsi Medan: Universitas Sumatera Utara.

Seniman. 2009. Implementasi Algoritma Kriptografi AES pada Mikrokontroler ATMega32.Skripsi . Medan: Universitas Sumatra Utara.

Susilo, Dede. 2010. 48 Jam Kupas Tuntas Mikrokontroler MCS51 dan AVR . Yogyakarta: Penerbit Andi.

Suyadhi, Taufiq Dwi Septian. 2010 .Buku Pintar Robotika Bagaimana Merancang dan Membuat Robot Sendiri . Yogyakarta: Andi Offset .

Usman .2008. Teknik Antarmuka dan Pemprograman Mikrokontroler AT89S52 Yogyakarta: Penerbit Andi.

Wakamenta, Yoga Nugraha. 2011. Perancangan dan Implementasi Robot IUV (Integrated Underwater Vehicle) Berbasis Sistem ROV (Remotely Operated

Vehicle) sebagai Alat Bantu Survei Bawah Air . Skripsi Medan: Universitas

(16)

BAB 3

ANALISIS DAN PERANCANGAN SISTEM

Robot pembersih lantai ini termasuk ke dalam jenis robot daratan (ground robot), secara umum robot ini bergerak menggunakan roda. Sesuai dengan namanya, robot ini merupakan robot akan bergerak mengikuti intruksi (masukkan) yang dikendalikan dari

smartphone. Oleh karena itu penulis akan menggunakan logika fuzzy sebagai pergerakan robot itu bergerak baik maju, mundur belok kiri, atau pun kekanan. Sehingga robot akan bergerak sesuai perintah user untuk membersihkan lantai dengan

vacum cleaner mini.

3.1 Analisis Sistem

Analisis sistem dapat didefinisikan sebagai penguraian dari suatu sistem yang utuh kedalam bagian-bagian komponennnya dengan maksud untuk mengidentifikasi dan

mengevaluasi permasalahan-permasalahan yang terjadi dan kebutuhan - kebutuhan yang diharapkan sehingga dapat diusulkan perbaikan-perbaikannya.

3.1.1 Analisis Masalah

Untuk mengidentifikasi masalah digunakan diagram Ishikawa. Diagram Ishikawa adalah sebuah alat grafis yang digunakan untuk mengidentifikasi, mengeksplorasi dan menggambarkan masalah serta sebab dan akibat dari masalah tersebut. Ini sering disebut juga diagram sebab – akibat atau diagram tulang ikan (fishbone diagram).

Masalah utama adalah dalam melakukan pembersihan sering dilakukan secara manual (manusia membersihkan lantai menggunakan alat seperti sapu tanpa ada bantuan menggunakan robot) mengguanakan sapu. Kemudian untuk melakukan pembersihan sering merasa malas karena kebanyakan menggap sepele hal tersebut.

Seiring dengan kemajuan teknologi dalam hal robotik, Robot pembersih lantai

(17)

biasanya dalam hal pembersihan. Biasa pembersihan dilakukan dengan cara manual. Oleh karena itu robot pembersih lantai ini sekiranya dapat membantu kinerja manusia dalam melakukan pembersihan lantai dengan lebih efektif. Robot pembersih lantai ini dirangkai dengan menggunakan bahasa C CodeVision AVR.

Analisis masalah digambarkan dengan Diagram Ishikawa (fishbone Diagram) berikut ini. Bagian kepala atau segiempat yang berada di sebelah kanan merupakan masalah. Sementara di bagian tulang-tulangnya merupakan penyebab.

Membersihkan lantai

Sapu sebagai alat manual yang dipakai dalam membersihkan sebelumnya manusia sebagai dalam menggerakkan

sapu

Gambar 3.1 Ishikawa Diagram Pada Robot Pembersih Lantai dengan Logika

Fuzzy

3.1.2Analisis Kebutuhan (Requirement Analyst)

Analisis kebutuhan sistem dibagi menjadi dua, yaitu analisis kebutuhan non fungsional dan analisis kebutuhan fungsional. Pada tahapan analisis ini sangat

dibutuhkan dalam mendukung kinerja sistem, apakah sistem yang dibuat telah sesuai dengan kebutuhan atau belum, karena kebutuhan sistem akan mendukung tercapainya tujuan yang diharapkan.

3.1.2.1Analisis Fungsional

(18)

informasi-informasi apa saja yang harus ada dan dihasilkan oleh sistem. Berikut ini adalah kebutuhan fungsional dari sistem, yaitu:

a. Robot dapat menerima perintah yang diinputkan oleh user.

b. Robot dapat melakukan manuver sesuai inputan (masukkan) berdasarkan Logika Fuzzy.

c. Robot dapat bergerak berdasarkan Logika Fuzzy dan membersihkan lantai dengan vacum cleaner mini .

3.1.2.2Analisis Nonfungsional

Untuk mendukung kinerja sistem, sistem juga dapat berfungsi sebagai berikut : 1. Robot menggunakan saklar agar dapat dioperasikan dengan mudah.

3.1.2 Pemodelan

Pemodelan sistem dapat dibagi menjadi Use Case Diagram, Activity diagram, dan Sequence diagram yang akan menggambarkan Alur Kerja dari Sistem Robot

Pembersih Lantai ini.

3.1.2.1Pemodelan Persyaratan Sistem dengan Use Case

Unified Modelling Language(UML) merupakan bentuk perancangan dan dokumentasi perangkat lunak berbasis pemrograman berorientasi objek. Pada penelitian ini, bentuk perancangan UML menggunakan beberapa diagram, yaitu Usecase Diagram, Activity

Diagram, dan Sequence Diagram. Use case adalah salah satu pemodelan yang digunakan untuk memodelkan persyaratan sistem. Dengan use case ini digambarkan siapa saja yang berinteraksi dengan sistem dan apa saja yang dapat dilakukan dengan sistem.

Diagram menunjukkan interaksi antara pengguna dan entitas eksternal lainnya dengan sistem yang sedang dikembangkan. Lebih jelasnya Use Case Diagram

digunakan untuk menggambarkan interaksi antara user dengan robot. Pada robot ini

(19)

USER

Robot Pembersih lantai di kontrol menggunakan Smartphone

Pergerakkan Robot

Menonaktifkan Bluetooth

Include

Inc lude pearing Bluetooth

Gambar 3.2 Usecase Diagram Prototipe RobotPembersih Lantai

Tabel 3.1 Dokumentasi Naratif Use Case sistem

Nama Use case Pembersih lantai menggunakan vacum cleaner mini dengan logika fuzzy

Actors Pengguna

Description Proses ini mendeskripsikan proses pergerakan Robot dengan logika fuzzy

Pre-Condition Sistem dihidupkan (power on)

Basic Flow

Kegiatan pengguna Respon sistem

Menginput tombol navigasi Menunggu keseluruhan proses inputan selesai

Alternate Flow Menekan tombol reset/power Sistem reset

Post-Condition Robot akan bergerak sesuai inputan dari pengguna

3.1.2.2 Activity Diagram

(20)

menghidupkan robot (power on)

Mengaktifkan Bluetooth Smartphone

Pencarian Bluetooth HC-05

Memproses Inputan Navigasi

Robot bergerak sesuai Inputan

pengguna mengulangi sistem pengguna menekan tombol reset

Pengguna Sistem (Robot)

Y

T Menghidupkan Vacum Cleaner

Menginputkan navigasi

Robot membersihkan lantai

Matikan vacum cleaner

Matikan robot turn off

Gambar 3.3 Activity Diagram Prototipe Robot Pembersih Lantai denganLogika

Fuzzy

Proses pembersihan lantai menggunakan robot yang dikontrol melalui

smartphone, Robot pembersih lantai ini di awali dengan menghidupkan robot (power on), menghidupkan vacum cleaner pada robot (on) dan mengaktifkan bluetooth pada

smartphone, kemudian bluetooth dari smartphone secara otomatis akan mencari

bluetooth external yang akan terjadi komunikasi serial. kemudian user akan mengarahkan robot pembersih lantai dengan memasukkan input-an button pada

(21)

mundur sesuai logika fuzzy yaitu (IF-THAN). Dan ketika pekerjaan sudah seleai maka

User dapat menonaktifkan Bluetooth pada smartphone dan menonaktifkan vacum cleaner dan Robot tersebut.

3.1.2.3 Sequence Diagram

Sequence diagram merupakan interaksi antara aktor-aktor yang terdapat dalam suatu

sistem, dan terjadi komunikasi yang berupa pesan. Pada gambar 3.4 berikut dijelaskan

sequence diagram robot pembersih lantai.

USER

Robot ;InputNavigasi :Fuzzy ;MoveRobot

Power ON

Instruksi bergerak

Input Navigasi

Pemilhan arah

Robot bergerak berdasarkan Input Navigasi dari user

Sistem Aktif

Robot Bergerak Sesuai

Navigasi user

Gambar 3.4 Sequence Diagram Prototipe RobotPembersih Lantai dengan

Algoritma Fuzzy

Pada sequence diagram robot pembersih lantai diatas dapat dilihat user

menghidupkan robot terlebih dahulu (power on). Sistem (robot) akan menerima inputan arah oleh pengguna yang akan dibersihkan oleh robot. Sistem akan melakukan

(22)

3.2 Perancangan Sistem

Pada tahap perancangan sistem akan dibagi menjadi beberapa bagian utama, yaitu penentuan komponen yang digunakan, perancangan kontruksi robot pembersih Lantai dan perancangan perangkat lunak robot serta algoritma fuzzy.

3.2.1Komponen yang Digunakan Robot

Komponen yang digunakan dikelompok menjadi dua yaitu komponen fisik dan komponen

elektronik. Komponen fisik digunakan untuk membentuk kerangka robot, bagian body

utama, mekanis robot. Sedangkan komponen elektronik digunakan untuk membangun

sirkuit utama (main circuit ), bagian aktuator. Berikut adalah tabel rincian dari peralatan

dan komponen yang digunakan (Tabel 3.2, Tabel 3.3 dan Tabel 3.4).

Tabel 3.2 Tabel Peralatan yang digunakan

Nama Alat Fungsi

Gergaji Sebagai alat potong untuk papan PCB dan fisik robot

Bor Listrik Untuk melubangi papan PCB dan akrilik

Gunting Sebagai alat potong untuk kabel

Cutter Untuk memotong Akrilik

Glue Gun Sebagai alat untuk melakukan pengeleman

Penggaris Sebagai alat ukur

Solder dan Timah Sebagai alat untuk Soldering

Obeng Untuk memasang dan membuka baut

Tang Untuk memasang dan membuka komponen

Multimeter Digital Alat ukur satuan listrik (tegangan, hambatan dan arus)

Tabel 3.3 Tabel Rincian Komponen Fisik

Nama Spesifikasi Keterangan

Akrilik Tebal 3 mm Sebagai badan robot dan

(23)

Papan PCB (Printed Circuit Board)

Tebal 3 mm Sebagai tempat untuk memasang rangkaian

Spacer Panjang 20 mm Tiang untuk akrilik

Tabel 3.4 Tabel Rincian Komponen Elektronik

Nama Spesifikasi Keterangan

Minimum Sistem Mikrokontroler

ATMega32 Processor Utama

Driver Motor L298D Driver untuk motor DC

Motor DC 6 Volt Akuator Roda

Komponen Pasif Kapasitor, Resistor, Kristal, Potensiometer

Komponen Sirkuit

Switch 6 pin Sebagai On/Off Robot

Pin Konektor Male Konektor

Housing Female Konektor

Kabel Pelangi Isi 20, 2 Meter Transmisi konektor

Baterai 1,2 V, 2.000 MAh (8 buah) Sumber tegangan

Regulator IC 7805 Pengubah tegangan ke 5 Volt

3.2.2 Perancangan Konstruksi Robot Pembersih Lantai

(24)

3.2.3 Perancangan Kerangaka Robot

Kerangka adalah konstruksi robot yang akan menentukan desain, bentuk dan ukuran dari komponen fisik lainnya. Fungsi utama dari kerangka adalah sebagai tempat atau kedudukan untuk seluruh komponen robot. Disamping itu kerangka juga akan menentukan efisiensi kerja dari robot.

Untuk material kerangka robot dapat digunakan beberapa alternatif bahan seperti bahan dari logam, plastik, dan kayu. Pemilihan material akan sangat berpengaruh terhadap konstruksi robot seperti berat, kekuatan, ketahanan terhadap keretakan dan kemampuan meredam getaran. Perpaduan material yang baik dapat menghasilkan konstruksi yang kuat dan ringan.

Membicarakan soal robot, tidak lepas dari unsur mekanik sebagai kerangka

robot. Kerangka robot pembersih lantai ini terbuat dari bahan plastik yaitu acrylic. Alasan penggunaan acrylic adalah, karena bahan ini ringan, kuat, tidak mudah rusak dan mudah dalam pengerjaannya. Untuk penghubung masing-masing acrylic menggunakan

spacer dengan ukuran 3,5 cm. Kerangka robot didesain dengan dimensi sebagai badan dasar robot, dengan menggunakan penyangga baut, mur dan spacer.

Gambar 3.5 Desain Rancangan Kerangka Robot

(25)

3.2.4 Perancangan Aktuator Robot

Aktuator adalah komponen yang berfungsi untuk melakukan gerakan mekanis berdasarkan input perintah dari mikrokontroler (processor). Robot pembersih lantai ini memiliki 1 komponen mekanis yaitu roda (wheel).

Roda adalah aktuator yang akan digunakan oleh robot pembersih lantai untuk melakukan pergerakan didarat. untuk penggerak roda digunakan motor DC dan

gearbox untuk meningkatkan torsi motor. Motor DC yang digunakan akan dikontrol oleh mikrokontroler ATMega32 melalui IC driver L298. Arah perputaran motor akan ditentukan berdasarkan output dari IC L298. Rancangan aktuator robot pembersih lantai dapat dilihat pada gambar 3.9 berikut.

Gambar 3.6 Rancangan Aktuator Robot Pembersih Lantai

3.2.5 Perancangan Sirkuit Elektronik

Perancangan sirkuit elektronik berhubungan dengan perancangan rangkaian power supply, mikrokontroler ATMegaa32A, driver motor, dan motor DC. Semua rangkaian tersebut disatukan pada sebuah pada papan sirkuit utama (main circuit)

(26)

3.2.5.1Perancangan Rangkaian Sumber Tegangan

Agar sistem dapat bekerja dengan baik dibutuhkan sumber tegangan (power supply). Ada tiga jenis sumber tegangan yang dibutuhkan pada system ini yaitu sumber tegangan untuk sirkuit, sumber tegangan untuk actuator, dan sumber tegangan untuk

vacum cleaner mini. Sirkuit utama mebutuhkan tegangan agar dapat beroperasi dengan stabil yaitu 5V. Sedangkan aktuator membutuhkan tegangan 9V – 12V.

Sumber tegangan dapat diperoleh dengan beberapa cara seperti menggunakan adaptor AC – DC 1A – 5A dengan tegangan keluaran 6V – 12V atau menggunakan baterai (tunggal atau gabungan beberapa baterai) yang menghasilkan tegangan keluaran 9V – 12V. Untuk memperoleh tegangan 5V dari sumber tegangan 6V – 12V dapat digunakan IC regulator 7805, IC regulator ini berfungsi untuk menghasilkan

tegangan keluaran sebesar 5V. Berikut adalah gambar rangkaian sumber tegangan untuk sirkuit utama (Gambar 3.12).

Gambar 3.7 Perancangan Rangkaian regulator IC 7805

3.2.5.2Perancangan Mikrokontroller ATMega32A

Mikrokontroler digunakan sebagai pengendali utama robot pembersih lantai.

Mikrokontroler akan memproses input dari perangkat kontrol dan mengontrol semua

aktivitas robot seperti pergerakan, sensing, dan komunikasi dengan perangkat kontrol.

(27)

sebagai rangkaian sistem minimum. Rangkaian sistem minimum terdiri dari rangakaian

osilator, rangkaian sistem reset, dan sumber tegangan.

Rangkaian osilator (clock) berfungsi memberikan sinyal clock untuk

mikrokontroler dengan frekuensi tertentu agar mikrokontroler yang digunakan pada

sistem dapat bekerja dengan baik. Rangkaian clock ini menghasilkan sinyal high atau low

dengan periode yang sama dan konstan. Pada gambar 3.13 ditunjukkan bentuk sinyal

clock dalam satuan waktu mikro detik.

Gambar 3.8 Bentuk sinyal clock

Rangkaian clock (osilator) pada sistem menggunakan satu buah kristal dengan frekuensi

12 MHZ dan dua buah kapasitor keramik dengan kapasitas 22 pF. Keluaran dari osilator

ini dihubungkan ke mikrokontroler pin 12 (XTAL2) dan pin 13 (XTAL1).

Sistem reset pada mikrokontroler berada pada pin 9. Sistem Mikrokontroler akan melakukan reset apabila pin 9 menerima satu siklus sinyal (1 dan 0). Jika sistem

reset berjalan dengan baik, maka mikrokontroler akan kembali menjalankan program dari awal. Pada gambar 3.14 berikut dapat dilihat sistem minimum mikrokontroler ATMega32A.

Tabel 3.5 Rincian Komponen Mikrokontroller ATMega32a

No Nama Barang Banyak Fungsi

1 Mikrokontroller

(ATmega32A) 1 Processor Utama

2 Crystall (12MHz) 1 Pembangkit Sinyal

3 Kapasitor nonpolar

(22pF) 2 Komponen Pendukung

4 Resistor 10k 1 Komponen Pendukung

5 Kapasitor10uF 1 Komponen Pendukung

6 Dioda1N4002 1 Komponen Pendukung

7 IC 7805 1 Pembagi tegangan sebesar 5 V

(28)

(100 uF)

9 LED 1 Sebagai indicator

10 Socket IC 40 PIN 1 Sebagai penyangga Mikrokontroller

Gambar 3.9 Perancangan Mikrokontroler ATMega32A

3.2.5.3Perancangan Rangkaian Driver Motor DC

Untuk mengendalikan perputaran motor DC digunakan IC L298. IC ini akan menerima input dari mikrokontrolerATMega32A dan menghasilkan output yang bersesuaian. L298 mampu men-drive dua motor DC sekaligus. Untuk mengaktifkan IC L298 membutuhkan dua sumber tegangan yaitu sumber tegangan 5 V untuk enable chip dan input-an (logic power supply) serta sumber tegangan yang kedua adalah sumber tegangan untuk motor DC sebesar 9V - 12V. Berikut ini adalah gambar rangkaian IC L298 (Gambar 3.18).

Tabel 3.6 Rincian Komponen Driver Motor IC L298D

No Nama Komponen Banyak Fungsi

1 IC L298D 1 Driver Motor DC

2 IC 7805 1 Pembagi tegangan sebesar 5 V

3 Dioda IN4002 9 Komponen Pendukung

(29)

5 Kapasitor bipolar (16 V) 1 Komponen Pendukung

6 LED 1 Indikator

7 TBlock 3 Terminal rangkaian

8 Resistor 4,7 Ohm 2 Komponen Pendukung

9 Pin jantan hitam 10 Konektor ke MCU

Gambar 3.10 Perancangan Rangkaian Driver Motor DC IC L298

3.2.6 Perancangan Program Mikrokontroller

(30)

3.2.7 Perancangan Logika Fuzzy

Berikut adalah flowchart logika fuzzy :

Mulai

Kembali

Y Y

T

T

X = masukkan perintah pada

robot

X==”W” X==”A” X==”Z”

T T

Y Y

X==”D”

Kanan(); Maju(); Kiri(); Mundur();

(31)

3.2.8 Perancangan Diagram Block Robot Pembersih Lantai

Diagram Block ini bertujuan untuk melihat bagaimana sistem ini terhubung kemana saja dia terhubung, sehingga baik pengguna mengerti alur kerja sistem dari sistem robot pembersih lantai ini. Dari gambar 3.12 dapat kita lihat bahwa module bluetooth

membawa akan tersambung ke mikrokontroler ATMega32a, dan dari mikrokontroler inilah yang memproses semua perintah dari smartphone yang dikontrol oleh pengguna. Mikrokontroler akan menggerakkan aktuator dan memberi daya ke vacum

cleaner mini.

Gambar 3.12 : Diagram Block Robot Pembersih Lantai

Modul

Bluetoo

th,

HC-05

Mikrokontroler ATMega32A

Driver Motor

Mot or 1

Mot or 2

Mini Vacum Cleaner

Smartphone

Android

(32)

BAB 4

IMPLEMENTASI DAN PENGUJIAN SISTEM

4.1 Implementasi Sistem

Setelah dilakukan analisis dan perancangan pada bab sebelumnya, proses yang akan dilakukan berikutnya adalah implementasi sistem sesuai dengan perancangan yang telah dibuat. Perangkat elektronika dapat dilakukan dengan dua cara yaitu menggunakan papan protoboard atau menggunakan PCB. Printed Circuit Board

(PCB) digunakan untuk mendapatkan rangkaian elektronika yang stabil, dengan menggunakan PCB pada sistem ini diharapkan perangkat tidak menimbulkan bug ke dalam sistem dan mempermudah pengerjaan dalam merangkai. Untuk itu pada implementasi dari sistem ini digunakan PCB

Kerangka robot pembersih lantai diimplementasikan menggunakan bahan plastik keras (acrilyc) dengan ketebalan lebih kurang 3 mm. Alasan utama penggunaan acrilyc adalah karena bahan yang cukup kuat , relatif ringan , mudah dalam pengerjaannnya serta mudah didapat. Secara keseluruhan bahan yang

digunakan untuk membuat kerangka robot adalah acrilyc 3 mm, spacer berukuran 35 mm, baut dengan diameter 3 mm.Perangkat lunak diimplementasikan dengan bahasa pemrogramman c (CodeVisionAVR).

4.1.1 Implementasi Konstruksi Utama

(33)

Sedangkan tinggi setiap tingkat adalah kurang lebih 4,4 cm. Berikut gambar tahap implementasi kerangka robot (a) kerangka bagian samping (b) kerangka bagian bawah(c) kerangka bagian atas (gambar 4.1).

(a) (b)

(c)

Gambar 4.1 Implementasi kerangka robot Pembersih Lantai (a) Kerangka

(34)

4.1.2 Implementasi Konstruksi Aktuator

Robot pembersih lantai menggunakan dua motor DC sebagai aktuator yang digunakan sebagai penggerak robot. Aktuator ini diimplementasikan menggunakan motor gear box dan wheel. Motor yang digunakan dapat bekerja antara 3 – 6 volt. Untuk wheel memiliki diameter 8cm dan depth3.25 cm, dapat dilihat padagambar 4.3.

(a) aktuator pada bagian belakang robot.

(b)wheel aktuator

(35)

4.1.3 Implementasi Rangkaian Sirkuit Elektronik

Rangkaian sirkuit elektronik diimplementasikan dengan menggunakan papan PCB. PCB merupakan sebuah papan tipis yang di salah satu atau kedua sisinya terdapat jalur yang sudah tercetak dari lapisan tembaga. PCB berfungsi untuk meletakan komponen elektronika. PCB yang masih dalam keadaan polos atau belum terdapat jalur-jalur tembaga sebenarnya lebih tepat kalau disebut sebagai CCB (Cooper Clad Board). Jenis CCB sendiri ada banyak macamnya namun yang paling mudah dijumpai di toko-toko komponen eketronika adalah “PCB polos” dan “PCB lubang-lubang”. Penggunaan papan PCB dapat meminimalisir noise dan lebih stabil dibandingkan dengan penggunaan protoboard, disamping itu juga peletakan komponen elektronik pada papan PCB lebih kuat dibandingkan diletakkan pada protoboard.

Gambar 4.3 Implementasi Rangkaian Sirkuit Elektronik

4.1.4 Implementasi Board Mikrokontroller (main board)

(36)

(a) (b)

Gambar 4.4 Implementasi Rangkaian Mikrokontrollerpada PCB (a) Layout Mikrokontroller pada ARES

(b) Implementasi Menggunakan PCB

4.1.5 Implementasi Board Driver Motor DC

IC L298D memiliki rangkaian dasar untuk beroperasi (sistem minimum) juga

diimplementasikan dalam PCB yang disebut boarddriver motor DC. Board driver ini nantinya akan menerima masukan dari mikrokontroller dan memberikan respon

terhadap motor DC.Layout driver motor dapat dilihat pada gambar 4.4.

(a) (b)

Gambar 4.5 Layout Driver Motor dengan menggunakan ARES (a)Layout Driver Motor pada ARES

(37)

Langkah-langkah implementasi rangkaian sirkuit elektronik pada papan PCB dijelaskan sebagai berikut:

1. Layout PCB dari rangkaian sirkuit elektronik. Layout pada PCB dibuat dengan menggunakan ISIS Proteus 7.7 Pro dan ARES. Setelah membuat schematic

rangkaian, tahap selanjut adalah membuat layout PCB dengan menggunakan ARES. Berikut gambar layout PCB (gambar 4.4.a dan 4.5.a).

2. Pencetakan, selanjutnya kita mencetak layoutdi kertas foto tipis (200 mg) untuk proses penyablonan.

3. Penyablonan, layout PCB yang sudah diprint sebelumnya, akan disablon ke papan PCB. Caranya adalah, pertama-tama papan PCB diamplas terlebih dahulu, kemudian dipanaskan dengan setrika, lalu letakkan cetakan layout

tersebut ke papan PCB, kemudian diratakan dengan setrika listrik hingga

layout tersebut menempel pada papan PCB (gambar 4.6).

(a) (b)

Gambar 4.6 Proses Penyablonan Layout pada PCB (a) alat dan bahan

(b) Hasil Penyablonan

(38)

(a) (b)

Gambar 4.7 Pelarutan PCB (a) PCB dan Larutan FeCl3

(b)Hasil pelarutan papan PCB

5. Pengeboran, pada tahap ini PCB yang telah dilarutkan akan dilubangi menggunakan bor dengan mata bor 0.8 mm – 1 mm. Tempat yang akan dilubangi telah tersedia pada layout PCB tersebut. Tujuan dari melubangi PCB untuk menyediakan tempat penyolderan antara komponen dengan papan PCB. Dapat dilihat pada gambar 4.7.

Gambar 4.8 Pengeboran pada PCB

(39)

Gambar 4.9 PemasanganKomponen pada PCB

7. Pengecekan dan pengujian, pada tahap ini setiap rangkaian dan komponen akan dicek serta diuji koneksinya. Pengujian ini menggunakan alat tambahan yaitu multimeter digital. Dapat dilihat pada gambar berikut (gambar 4.9).

Gambar 4.10 Uji komponen pada PCB

4.2 Implementasi Perangkat Lunak

4.2.1 Implementasi Modul Program Mikrokontroler

(40)

Gambar 4.11 Proses pembuatan program Mikrokontroller Robot Pembersih

Lantai

4.2.2.1Rutin Program untuk Aktuator Robot

Rutin program berikut dapat digunakan untuk mengatur pergerakn robot baik maju, mundur, belok kiri dan belok kanan.

void maju(){

PORTD.2=0;

PORTD.3=1;

PORTD.7=1;

PORTD.6=0;

OCR1A=100;

OCR1B=100;

}

void b_kiri(){

PORTD.2=1;

PORTD.3=0;

PORTD.7=1;

PORTD.6=0;

OCR1A=100;

OCR1B=100;

}

void b_kanan(){

PORTD.2=0;

(41)

PORTD.7=0;

Dari ritun program diatas disinilah letak proses fuzzyfikasi. Karena proses fuzzyfikasi

yaitu proses untuk mengubah variabel non-fuzzy (variabel numerik) menjadi variabel

fuzzy (variabel linguistik).terjadi yaitu dimana PORTD.2 menghasil nilai 0, PORTD.3 menghasilkan nilai 1, PORTD.7 menghasilkan nilai 1, PORTD.6 menghasilkan nilai 0, OCR1A menghasilkan nilai 100, dan OCR1B menghasilkan nilai 100 yang membuat kesimpulan menjadi arah maju. Dan seterusnya dapat kita lihat dari program rutin diatas.

4.2.2.2Skema Pembuatan Program di Mikrokontroller ATMega32a atau Cara

menanamkan Program di Mikrokontroller ATMega32a

(42)

Gambar 4.12 Skema Pembuatan Program di Mikrokontroller ATMega32a

atau Cara menanamkan Program di Mikrokontroller ATMega32a

4.3 Pengujian Sistem

Pengujian sistem dilakukan untuk mengetahui bahwa sistem yang telah dibangun

dapat berjalan dengan baik. Misalnya penekanan tombol pada button di smartphone

dapat terdeteksi sebagai input oleh mikrokontroller dan berjalan baik dalam pergerakan robot. Pengujian yang dilakukan pada sistem ini adalah pengujian input

robot, pengujian aktuator robot, pengujian pergerakan robot, pengujian vacum clener pada robot, dan pengujian bluetooth.

4.3.1 Pengujian Input Robot Pembersih Lantai

Pengujian ini dilakukan untuk melihat apakah button pada Smartphone Android akan berfungsi pada robot. Jika tahap pengujian smartphone android ini telah berhasil berarti hubungan antarmuka smartphone dan sistem bluetooth serta mikrokontroler yang dirangkai sudah berfungsi dengan baik.

Gambar 4.13 Pengujian Input Robot Pembersih Lantai Listing Program

C Yang dibuat

dengan Aplikasi

Aplikasi Progisp

Downloader

Mikrokontroller

(43)

4.3.1.1 Pengujian Input Button Open pada Robot Pembersih Lantai

Misalnya jika button ditekan maka robot akan bergerak sesuai arah yang telah ditentukan, seperti jika ditekan button open maka hubungan komunikasi serial antara

bluetooth di smartphone dan bluetooth external terkoneksi dilihat pada gambar 4.14.

Gambar 4.14 Pengujian Input button Open pada Robot Pembersih Lantai

Contoh program open pada java android : public void onStart()

{

super.onStart();

if(D) Log.e(TAG, "ON START");

//Open Button

ButtonOpen.setOnClickListener(new View.OnClickListener()

{

public void onClick(View v)

{

try

{

CariBT(); BukaBT(); }

catch (IOException ex) { }

(44)

4.3.1.2Pengujian Input Button Close pada Robot Pembersih Lantai

Misalnya jika button ditekan maka robot akan bergerak sesuai arah yang telah ditentukan, seperti jika ditekan button close maka hubungan komunikasi serial antara

bluetooth di smartphone dan bluetooth external tidak terkoneksi. Button close dilihat pada gambar 4.15.

Gambar 4.15 Pengujian Input button Close pada Robot Pembersih Lantai

Contoh program close pada java android :

ButtonClose.setOnClickListener(new View.OnClickListener()

{

public void onClick(View v)

{

try

{

closeBT(); }

catch (IOException ex) { }

} }); }

4.3.1.3Pengujian Input Arah Panah ke Atas pada Robot Pembersih Lantai

(45)

Gambar 4.16 Pengujian Inpu Button Arah Panah ke Atas pada Robot Pembersih Lantai

Contoh program close pada java android :

ButtonMove.setOnClickListener(new View.OnClickListener()

{

public void onClick(View v)

{

try

{

String kata="m";

for(int i=0;i<kata.length();i++){

sendData(kata.charAt(i)); }

}

catch (IOException ex) { }

} });

4.3.1.4Pengujian Input Arah Panah ke Kanan pada Robot Pembersih Lantai

(46)

Gambar 4.17 Pengujian Input Button Arah Panah ke Kanan pada Robot Pembersih Lantai

4.3.1.5Pengujian Input Button Arah Panah ke Kiri pada Robot Pembersih Lantai

Contoh program close pada java android :

ButtonRight.setOnClickListener(new View.OnClickListener()

{

public void onClick(View v)

{

try

{

String kata="r"; for(int

i=0;i<kata.length();i++){

sendData(kata.charAt(i));

} }

catch (IOException ex) { }

} });

(47)

Gambar 4.18 Pengujian Input Button Arah Panah ke Kiri pada Robot Pembersih Lantai

Contoh program close pada java android :

ButtonLeft.setOnClickListener(new View.OnClickListener()

{

public void onClick(View v)

{

try

{

String kata="l"; for(int

i=0;i<kata.length();i++){

sendData(kata.charAt(i));

} }

catch (IOException ex) { }

} });

4.3.1.6Pengujian Input Button Arah Panah ke Bawah pada Robot Pembersih

Lantai

(48)

Gambar 4.19 Pengujian Input Button Arah Panah ke Bawah pada Robot Pembersih Lantai

Contoh program close pada java android :

ButtonBack.setOnClickListener(new View.OnClickListener()

{

public void onClick(View v)

{

try

{

String kata="b"; for(int

i=0;i<kata.length();i++){

sendData(kata.charAt(i));

} }

catch (IOException ex) { }

} });

4.3.2 Pengujian Aktuator dan Pergerakan Robot Pembersih Lantai

Pengujian aktuator robot menyangkut pada bagian penggerak motor dengan modul

(49)

maju()’, maka robot akan berjalan maju, dan menandakan tahap pengujian ini sudah berfungsi dengan baik, dapat dilihat pada gambar 4.20.

(a) (b)

Gambar 4.20 Pengujian Aktuator Robot Pembersih Lantai (a) Robot Belok Kiri (b) Posisi Robot Maju

4.3.3 Pengujian Vacum Cleaner pada Robot Pembersih Lantai

Pada pengujian ini akan dilihat apakah vacum cleaner mini sudah dapat digunakan. Dapat kita lihat pada gambar 4.21 (a) dimana robot pembersih lantai sedang

membersihkan sampah yaitu potongan kertas. Pada gambar 4.21 (b) merupakan hasil dari pembersihan yang dilakukan vacum clener mini ini. Dan pada gambar 4.21 (c) saat dibongkar tempat penyimpanan sementara sampah. Sehingga vacum cleaner mini

(50)

(a) Pengujian Vacum Clener sedang membersihkan potongan kertas

(b)Pengujian Vacum Clener sudah membersihkan potongan kertas

(c) Pengujian isi dari Vacum Clener dari membersihkan potongan kertas

(51)

4.3.4 Pengujian Bluetooth pada Robot Pembersih Lantai

Pengujian ini dilakukan untuk melihat apakah bluetooth eksternal yang ditekan saklar pada robot dapat berfungsi. Jika tahap pengujian bluetooth ini telah berhasil berarti hubungan atau antarmuka smartphone dan sistem bluetooth serta mikrokontroler yang dirangkai sudah berfungsi dengan baik. Dapat kita lihat pada gambar 4.22 (a) yaitu jika pearing atau proses pencarian bluetooth pada smartphone dan bluetooth eksternal berhasil maka led pada bluetooth akan menampilkan warna tidak berkedip, dan pada gambar 4.22 (b) yaitu jika lampu led pada bluetooth berkedip maka proses pencarian

bluetooth pada smartphone belum ditemukan.

(a) (b)

Gambar 4.22 Pengujian Bluetooth Robot Pembersih Lantai (a) Led Bluetoth

(52)

KESIMPULAN DAN SARAN

5.1 Kesimpulan

Berdasarkan hasil dari implementasi dan pengujian perancangan robot pembersih

lantai dengan mikrokontroler ATMega32A dengan algoritma Fuzzy untuk

membersihkan lantai , maka penulis mengambil kesimpulan sebagai berikut:

1. Robot pengendali menggunakan smartphone android berbasis mikrokontroler

ATMega32A menggunakan logika Fuzzy berhasil di rakit dengan baik. robot yang

bergerak dengan dikontrol oleh pengguna untuk membersihkan lantai, dengan

hanya mengontrol , dengan menekan tombol arah seperti kanan, kiri, maju dan

mundur melalui smartphone. Robot akan membersihkan dan bergerak lantai sesuai

pengguna yang diperoleh dari logika fuzzy.

5.2 Saran

Berikut beberapa saran yang penulis berikan untuk pengembangan lebih lanjut dari

penelitian ini:

1. Pengisian daya baterai masih dilakukan dalam keadaan manual, yaitu dengan cara

di isi melalui charger. Dapat dilakukan pengembangan dengan mengisi daya

melalui jaringan wifi.

2. Pengontrolan robot menggunakan smartphone, dapat dilakukan pengembangan

(53)

komputer tersebut.

3. Penggunaan roda pada robot pembersih lantai sekarang hanya menggunakan 3

roda saja, untuk kedepannya dapat kembangkan lagi menjadi 4 roda.

4. Saklar pada vacum cleaner kedepannya sudah dapat dikontroler melalui

smartphone.

5. Pengontrolan Vacum cleaner pada robot, dapat dilakukan pengembangan dengan

dikontrol naik dan turun sehingga tidak menghambat gerak robot saat tidak

(54)

BAB 2

LANDASAN TEORI

2.1 Robotika

2.1.1 Sejarah Robot

Kata robot berasal dari Czech yaitu robot yang berarti bekerja. Istilah ini diperkenalkan ke publik oleh Karel Capek pada saat mementaskan RUR (Rossum’s

Universals Robots) pada tahun 1921. Robot adalah peralatan eletro-mekanik atau bio-mekanik, atau gabungan peralatan yang menghasilkan gerakan yang otonomi maupun gerakan berdasarkan gerakan yang diperintahkan.

Awal kemunculan robot dapat dirunut dari bangsa Yunani kuno yang membuat patung yang dapat dipindah-pindah. Pada tahun 270 SM, Ctesibus seorang insinyur Yunani, membuat organ dan jam air dengan komponen yang dapat dipindahkan. Pada zaman Nabi Muhammad SAW telah dibuat mesin perang dengan menggunakan roda dan dapat melontarkan bom. Bahkan Al-Jajari (1136-1206), seorang ilmuan Islam pada dinasti Artuqid, dianggap sebagai tokoh yang pertama kali menciptakan robot humanoid yang berfungsi sebagai 4 musisi.

Robot adalah rangkaian peralatan mekanika dan elektronika yang di rangkai bersama-sama yang bekerja dan beroperasi sesuai dengan instruksi atau program. Robot yang selama ini kita kenal adalah sebuah mesin berbentuk manusia yang dapat

berbicara dan berjalan layaknya manusia. Robot tersebut adalah salah satu jenis robot berdasarkan bentuknya yaitu kategori Android. Robot jenis ini berbentuk seperti kendaraan yang dilengkapi dengan roda dan bergerak seperti sebuah mobil.

(55)

telah berjalan ke sebuah gedung konser panggung dan melakukan Detroit Symphony Orchestra, dan Wakamaru robot, diproduksi oleh Mitsubishi, telah dilakukan dalam produksi teater di Osaka, Jepang. The Kawada HRP2 humanoid dapat melakukan rumit tarian tradisional Jepang. Semua robot ini pertunjukan, bagaimanapun, telah mempekerjakan direncanakan gerakan koreografi yang memiliki telah diprogram cermat, pada dasarnya dengan tangan (David Grunberg, 2010)

2.1.2 Karakteristik Robot

Sebuah robot umumnya memiliki karakteristik sebagai berikut:

1. Sensing : Robot dapat mendeteksi lingkungan sekitarnya (halangan, panas, suara, dan image).

2. Mampu Bergerak : Robot umumnya bergerak dengan menggunakan kaki atau

roda, dan pada beberapa kasus robot dapat terbang dan berenang.

3. Cerdas : Robot memiliki kecerdasan buatan agar dapat memutuskan aksi yang tepat dan akurat.

4. Membutuhkan Energi yang Memadai : Robot membutuhkan catu daya yang memadai.

2.1.3 Tipe Robot

Robot didesain dan dibuat sesuai kebutuhan pengguna. Robot, hingga saat ini, secara umum dibagi menjadi beberapa tipe sebagai berikut:

1. Robot manipulator

2. Robot mobil (mobile robot)

a. Robot daratan (ground robot)

1. Robot beroda

2. Robot berkaki

b. Robot air (submarine robot)

c. Robot terbang (aerial robot)

(56)

elektronik dan komputer. Sedangkan robot mobil mengarah ke robot yang bergerak, meskipun nantinya robot ini juga memiliki manipulator.

2.2Logika Fuzzy

2.2.1Sejarah Logika Fuzzy

Logika fuzzy pertama kali dikembangkan oleh Prof. Lotfi A. Zadeh, seorang peneliti dari Universitas California, pada tahun 1960-an. Logika fuzzy dikembangkan dari teori himpunan fuzzy.

Kurangnya pengetahuan yang tepat dan lengkap tentang lingkungan

membatasi penerapan desain sistem kontrol konvensional ke domain dari mobile robot otonom. Apa yang dibutuhkan adalah kontrol cerdas dan pengambilan keputusan sistem dengan kemampuan untuk berpikir di bawah ketidakpastian dan belajar dari pengalaman.

Misalnya, banyak penelitian telah dilakukan di aplikasi mobile robot dengan masalah pasti seperti, logika fuzzy, jaringan saraf dan algoritma evolusioner. Sistem logika fuzzy (FLS) memiliki kemampuan menangani tak terduga dan ketidakpastian masalah. Dalam penelitian robotika, FLS adalah sistem kontrol yang mampu menavigasi mobile robot otonom tanpa campur tangan manusia. Dengan menggunakan aturan FLS, mobile robot tergantung pada perilaku sistem. Pendekatan berbasis perilaku dengan sistem logika fuzzy bertujuan untuk mengembangkan arsitektur agen cerdas, serta struktur kontrol yang efektif untuk mengendalikan agen atau robot fisik. Karena fleksibilitas yang tinggi dan kecepatan reaktif terhadap lingkungan tidak terstruktur, ketahanan dan keandalan sistem, dan kemampuan yang

(57)

Secara luas menggunakan teknik fuzzy logic dengan pendekatan berbasis perilaku dalam aplikasi mobile robot adalah jenis - 1 kabur sistem logika (T1FLS). Namun, dalam pelaksanaannya, T1FLS memiliki satu batasan . Pembatasan adalah bahwa himpunan fuzzy adalah tertentu dalam arti bahwa kelas keanggotaan untuk setiap masukan adalah nilai crisp. Ini berarti bahwa itu , dalam tingkat tertentu , hanya memetakan nilai crisp menjadi nilai crisp lain mulai dari 0 ke 1, menghilangkan sifat ketidakpastian yang awalnya menawarkan sebagai manfaat dari logika fuzzy. Hilangnya sifat ketidakpastian menyebabkan kinerja kegagalan ketidakpastian penanganan (Siti Nurmaini,2012).

Fuzzy secara bahasa diartikan sebagai kabur atau samar-samar. Suatu nilai dapat bernilai besar atau salah secara bersamaan. Dalam fuzzy dikenal derajat keanggotaan yang memiliki rentang nilai 0 (nol) hingga 1(satu). Berbeda dengan himpunan tegas yang memiliki nilai 1 atau 0 (ya atau tidak).

Logika Fuzzy merupakan seuatu logika yang memiliki nilai kekaburan atau kesamaran (fuzzyness) antara benar atau salah. Dalam teori logika fuzzy suatu nilai bias bernilai benar atau salah secara bersama. Namun berapa besar keberadaan dan kesalahan suatu tergantung pada bobot keanggotaan yang dimilikinya. Logika fuzzy

memiliki derajat keanggotaan dalam rentang 0 hingga 1. Berbeda dengan logika digital yang hanya memiliki dua nilai 1 atau 0. Logika fuzzy digunakan untuk

menterjemahkan suatu besaran yang diekspresikan menggunakan bahasa (linguistic), misalkan besaran kecepatan laju kendaraan yang diekspresikan dengan pelan, agak cepat, cepat, dan sangat cepat. Dan logika fuzzy menunjukan sejauh mana suatu nilai itu benar dan sejauh mana suatu nilai itu salah. Tidak seperti logika klasik (scrisp)/ tegas, suatu nilai hanya mempunyai 2 kemungkinan yaitu merupakan suatu anggota himpunan atau tidak. Derajat keanggotaan 0 (nol) artinya nilai bukan merupakan anggota himpunan dan 1 (satu) berarti nilai tersebut adalah anggota himpunan.

Logika fuzzy adalah suatu cara yang tepat untuk memetakan suatu ruang input

kedalam suatu ruang output, mempunyai nilai kontinyu. Fuzzy dinyatakan dalam derajat dari suatu keanggotaan dan derajat dari kebenaran. Oleh sebab itu sesuatu dapat dikatakan sebagian benar dan sebagian salah pada waktu yang sama (Kusumadewi. 2004).

(58)

seperti "sedikit", "lumayan" dan "sangat" (Zadeh 1965). Kelebihan dari teori logika

fuzzy adalah kemampuan dalam proses penalaran secara bahasa (linguistic reasoning). Sehingga dalam perancangannya tidak memerlukan persamaan matematik dari objek yang akan dikendalikan.

Pada kebanyakan sistem rekayasa, ada dua sumber informasi yang penting, yaitu sensor – yang menyediakan pengukuran numerik dari variabel, dan tenaga ahli (human expert) – yang menyediakan instruksi linguistik dan deskripsi tentang sistem. Informasi dari sensor dapat disebut sebagai informasi numerik, sedangkan informasi dari tenaga ahli disebut informasi linguistik. Informasi numerik dinyatakan dengan angka, seperti 2, 3, 4, sementara informasi linguistik dinyatakan dengan kata-kata seperti besar, kecil, sangat panas, dan sebagainya. Pendekatan rekayasa konvensional banyak memanfaatkan informasi numerik dan sedikit sulit untuk memanfaatkan informasi linguistik. Mengingat begitu banyak pengetahuan manusia yang dinyatakan dengan istilah-istilah linguistik, memadukannya dengan sistem rekayasa secara sistematik dan efisien sangatlah penting.

Informasi linguistik biasanya disajikan dengan istilah-istilah yang kabur alias

fuzzy. Hal ini paling tidak ada tiga alasan yang dapat dikemukakan. Pertama, kita biasanya akan merasa lebih mudah dan efisien untuk mengkonsumsi pengetahuan kita dalam bentuk fuzzy. Hal ini dapat dimengerti karena kalau kita memaksakan untuk

(59)

seperti, “Kalau suhunya naik dan alirannya tinggi maka tekanannya akan bertambah

tinggi.” Hal menarik yang dapat kita lihat disini adalah meskipun informasi linguistik tidak persis tetap ia dapat memberikan informasi yang penting mengenai sistem dan kadangkala hanya itulah informasi yang tersedia. Karena itu maka akan menarik kalau kita dapat menggunakan informasi fuzzy tersebut secara ilmiah.

Berikut ini akan dipaparkan beberapa metode yang secara efektif mampu mengkombinasikan informasi numerik dan linguistik dan memanfaatkannya untuk memecahkan masalah sistem kontrol (meskipun pada hakikatnya tidak harus terbatas pada bidang kontrol, tetapi bisa juga yang lain seperti pemrosesan sinyal, komunikasi, ekonomi, atau politik). Untuk keperluan tersebut maka dipakai sistem fuzzy adaptif.

Sistem fuzzy adaptif didefinisikan sebagai sistem logika fuzzy yang dilengkapi dengan algoritma pembelajaran. Sistem logika fuzzy tersebut disusun dari suatu kumpulan aturan JIKA-MAKA (IF-THEN) fuzzy sedangkan algoritma pembelajarannya dapat mengubah parameter dan struktur dari sistem logika fuzzy berdasarkan informasi numerik. Sistem fuzzy adaptif dapat dipandang sebagai sistem logika fuzzy yang memiliki kemampuan untuk membangkitkan aturan-aturan (rule) secara otomatis melalui proses pembelajaran (Kuswandi, 2007).

2.2.2Fuzzyfikasi

Proses fuzzyfikasi merupakan proses untuk mengubah variabel non-fuzzy (variabel numerik) menjadi variabel fuzzy (variabel linguistik). Nilai masukkan yang masih dalam bentuk variabel numerik yang telah dikuantisasi sebelum diolah oleh pengendali logika fuzzy harus diubah terlebih dahulu ke dalam variabel fuzzy. Melalui fungsi keanggotaan yang telah disusun maka dari nilai-nilai masukkan tersebut menjadi informasi fuzzy yang berguna nantinya untuk proses pengolahan secara fuzzy

pula. Proses ini disebut fuzzyfikasi (Kuswandi,2007).

2.3 Mikrokontroller ATMega32

(60)

sebuah CPU, memori dan I/O yang terintegrasi dalam bentuk sebuah IC atau dapat disebut dengan single Chip. Mikrokontroller AVR (Alf and Vegard’s Risc Processor) standart memiliki arsitektur 8 – bit, dimana semua intruksi dikemas dalam kode 16 – bit

dan sebagian besar intruksi dalam 1 (satu) siklus clock. AVR berteknologi RISC

(Reduced Intruction Set Computing).

Kontrol utama dari keseluruhan sistem pada penelitian ini ditangani oleh

mikrokontroler AVR (Alf and Vegard’s Risc Processor) ATmega32. Mikrokontroler

ini memiliki arsitektur 8 bit, dimana semua instruksi dikemas dalam kode 16 – bit, dan sebagian besar instruksinya dieksekusi dalam satu siklus clock. Kelebihan dari ATmega32 sehingga digunakan sebagai kontrol utama adalah sebagai berikut[8]:

1. Mempunyai performa yang tinggi (berkecepatan akses maksimum 16MHz) tetapi hemat daya.

2. Memori untuk program flash cukup besar yaitu 32Kb. 3. Memori internal (SRAM) cukup besar yaitu 2Kb. 4. Mendukung hubungan serial SPI.

5. Tersedia 3 channel timer/counter (2 untuk 8 bits dan 1 untuk 16 bits).

Gambar 2.1 Bentuk Fisik Mikrokontroller ATMega32A

Mikrokontroler Keluarga AVR secara umum dikelompokkan menjadi 6 (enam) kelompok, yaitu(Iswanto, 2009) :

a. Keluarga ATtini : biasanya bentuk dimensinya kecil, ukuran memori kecil, jumlah pin masukan dan keluaran juga sedikit.

b. Keluarga AT90Sxx : Merupakan mikrokontroler yang pertama kali dibuat oleh Atmel Corp.

c. keluarga ATMega : Merupakan pengembangan mikrokontroler AT90Sxx dengan fitur yang lebih banyak.

(61)

e. Keluarga AT90USBxx : Merupakan mikrokontroler yang berorientasi pemrograman USB.

f. Keluarga AVR 32 Bit contohnya AP7000, UC3Axxxx, UC3Bxxx, UC3Lxx, dsb : Merupakan mikrokontroler dengan register dan instruksi dengan panjang 32 bit.

Mikrokontroler ATMega32 adalah keluarga dari ATMega yang memiliki Arsitektur seperti gambar 2.2 berikut :

Gambar 2.2 Arsitektur Mikrokontroller ATMega32A

Fitur-fitur yang dimiliki oleh ATMega32A adalah sebagai berikut: a. Performa tinggi, mikrokontroler berdaya rendah.

b. Mikrokontroler dengan arsitektur RISC 8 bit.

1. 131 kode instruksi dalam bahasa assembly, hampir semua membutuhkan satu

(62)

2. Mempunyai 32 x 8 bit register kerja kegunaan umum.

3. Pengoprasian full static, artinya clock dapat diperlambat, bahkan dihentikan sehingga chip berada dalam kondisi sleep. CMOS juga lebih tahan terhadap

noise.

4. Kecepatan mengeksekusi sampai dengan 16 mega instruksi per detik pada saat diberikan osilator sebesar 16 MHZ.

5. Terdapat rangkaian pengali 2 (dua) kali untuk siklus kerjanya di dalam chip. c. Flash EEPROM (Electrically Eraseable Programmable Read Only Memory)

sebesar 32 kilobyte yang dapat diprogram ulang dan dengan kemampuan Read While Write.

d. Ketahanan hapus-tulis Flash ROM adalah 10.000 kali dengan pengaturan pilihan kode boot dan Lock Bit yang independen.

e. Memori SRAM sebesar 2 kilobyte yang dapat dihapus-tulis 100.000 kali.

f. Penguncian kode program untuk keamanan perangakat lunak agar tidak dapat dibaca.

g. Memori yang non-volatile EEPROM sebesar 1024 byte.

h. Memiliki 2 buah timer/counter 8 bit sebanyak 2 buah dan sebuah timer/counter

16 bit dengan opsi PWM sebanyak 4 kanal.

i. Memiliki 8 kanal Analog to Digital Converter 10 bit dengan jenis single ended.

j. Untuk kemasan TQFP ADC dapat diatur 7 buah kanal jenis diferensial dan khusus 2 kanal dengan penguatan yang dapat diatur melalui registernya sebesar 1x, 10x atau 20x.

k. Antarmuka komunikasi serial USART yang dapat diprogram dengan kecepatan maksimal 2,5 Mbps.

l. Antarmuka SPI master / slave.

m. Watchdog timer dengan osilator di dalam chip yang dapat diprogram. n. Komparator Analog di dalam chip.

o. Pendeteksian tegangan gagal yang dapat diprogram.

p. Osilator RC internal yang terkalibrasi. q. Sumber interupsi internal dan eksternal.

r. Pilihan Mode sleep : idle, pereduksi noise ADC, penghematan daya konsumsi, penurunan daya, kondisi standby.

(63)

t. Terdapat pilihan kemasan PDIP 40 pin,TQFP 44 kaki, QFN/MLF 44 titik. u. Tegangan pengoprasian

1. 2,7 – 5,5 Volt untuk ATMega32L 2. 4,5 – 5,5 Volt untuk ATMega32 v. Kecepatan

1. 0 – 8 MHz untuk ATMega32L 2. 0 – 16 MHz untuk ATMega32

w. Konsumsi daya pada 1 MHz, 3 Volt, suhu 25o C untuk ATMega32L. 1. Aktif : 1,1 Miliampere

2. Mode idle : 0,35 Miliampere

3. Mode power down : kurang dari 1 Mikroampere

ATMega32 dapat dilihat pada Gambar 2.3 berikut.

(64)

Konfigurasi Pin ATMega32A dapat dilihat pada tabel 2.1 berikut: Tabel 2.1 Konfigurasi Pin ATMega32

Nomor Pin Nama Fungsi

10 VCC Catu daya positif

11, 31 GND Catu daya negative/ground

30 AVCC Catu daya positif untuk ADC internal

32 AREF Pin untuk tegangan referensi AADC

1 – 8 PB7…PB0 Pin masukan dan keluaran Port B

33 – 40 PA7…PA0 Pin masukan dan keluaran Port A

14 – 21 PD7…PD0 Pin masukan dan keluaran Port D

22 – 29 PC7…PC0 Pin masukan dan keluaran Port C

9 RESET Pin masukan untuk reset (active low)

12, 13 XTAL1 dan 2 Pin untuk masukan osilator eksternal

Memori ATMega32 dapat dilihat pada gambar 2.4 berikut:

(a) (b)

(65)

Untuk dapat menggunakan atau mengoprasikan mikrokontroller ATMega32, harus dibuat sistem minimum yang meliputi komponen antara lain : sumber tegangan (Vcc) sebesar 5V DC, Ground (Gnd) dan sistem reset. Mikrokontroller ATMega32 memiliki clock generator internal sebesar 1 MHz, sehingga mikrokontroller ini dapat bekerja langsung tanpa harus menggunakan clock external.

Untuk membuat program mikrokotroler ATMega32 digunakan editor dan

compiler untuk bahasa C. Dalam pembahasan ini editor dan compiler yang digunakan adalah WinAVR. Setelah proses pembuatan dan kompilasi program selesai dilakukan akan diperoleh file intel hex (*.hex). File ini adalah file yang nantinya akan diprogramkan ke mikrokontroler ATMega32 melalui interface bsd programmer (Brian Dean's Programmer) yang terhubung ke komputer melalui antarmuka port

paralel komputer. Koneksi antara ATmega32 dan port paralel untuk bsd programmer

diberikan oleh tabel 2.2.

Tabel 2.2 Koneksi Pin Port Paralel dan ATmega32

Port Paralel ATMega32

Prinsip kerja mikrokontroler adalah sebagai berikut:

 Berdasarkan nilai yang berada pada register Program Counter, mikrokontroler mengambil data pada ROM dengan alamat sebagaimana yang tertera pada register Program Counter. Selanjutnya isi dari register Program Counter ditambah dengan satu (Increment) secara otomatis.

Data yang diambil pada ROM merupakan urutan instruksi program yang telah dibuat dan diisikan sebelumnya oleh pengguna.

(66)

pada register, RAM, isi Port, atau melakukan pembacaan dan dilanjutkan dengan pengubahan data.

 Program Counter telah berubah nilainya (baik karena penambahan otomatis pada langkah 1, atau karena pengubahan-pengubahan pada langkah 2). Selanjutnya yang dilakukan oleh mikrokontroler adalah mengulang kembali siklus ini pada langkah 1. Demikian seterusnya hingga power dimatikan.

2.4 Aktuator

Aktuator adalah bagian yang berfungsi sebagai penggerak dari perintah yang diberikan oleh input. Aktuator biasanya merupakan peranti elektromekanik yang menghasilkan gaya gerakan. Aktuator terdiri dari 2 jenis, yaitu:

1. Aktuator elektrik

2. Aktuator pneumatik dan hidrolik.

Pada penelitian ini aktuator yang akan digunakan adalah aktuator elektrik yang berupa motor DC yang akan dijelaskan sebagai berikut :

2.4.1 Motor DC

Motor DC adalah suatu mesin yang berfungsi untuk mengubah energi listik arus searah menjadi energi gerak atau energi mekanik. Motor yang paling sederhana untuk pengaktifannya. Motor DC terdiri dari dua bagian utama, yaitu rotor dan stator. Rotor adalah bagian yang berputar atau armature, berupa koil dimana arus listrik dapat mengalir. Stator adalah bagian yang tetap dan menghasilkan medan magnet dari koilnya (Cholik, 2014).

Prinsip kerja motor DC adalah jika kumparan dialiri arus listrik maka pada kedua kumparan akan bekerja gaya Lorentz. Pada gambar 2.5 dapat dilihat prinsip kerja gaya Lorentz, dimana gaya yang jatuh pada telapak tangan (F), jari yang

Gambar

Gambar 3.11 Flowchart Logika Fuzzy
Gambar 3.12 : Diagram Block Robot Pembersih Lantai
Gambar 4.1 Implementasi kerangka robot Pembersih Lantai (a) Kerangka
Gambar 4.2 Implementasi Aktuator Robot Pembersih Lantai
+7

Referensi

Dokumen terkait

Sumbangan dari setiap partisipan tidak sama, ada yang hanya memberikan sumbangan yang sedikit (free-rider), dan mereka mengambil keuntungan dari kerja anggota kelompok yang lain.

Selalu ingat ini, jika ide-ide Anda tidak umum, atau Anda sedang melakukan presentasi sebuah teknik baru, yang sudah terbukti berhasil dan tidak banyak orang yang

Type III female genital mutilation [gambar]. Diunduh

[r]

Berdasarkan uraian tersebut maka dapat dirumuskan beberapa permasalahan dalam penelitian ini, yaitu : 1) Bagaimanakah perkembangan kredit usaha mikro kecil dan

(Sukirno, 1981:23).Secara makro pertumbuhan dan peningkatan PDRB dari tahun ke tahun merupakan indikator dari keberhasilan pembangunan daerah yang dapat dikategorikan dalam

a) Mengadakan analisis terhadap materi pelajaran mana yang membutuhkan alat atau media dalam penyampaiannya. Dari analisis materi ini dapat di daftar alat-alat/media apa

PEREKA-PEREKA INDUSTRI SEPERTI HENRY DREYFUSS, RAYMOND LOEWY, CHARLES EAMES NAMA-NAMA PENTING YANG TELAH MENCORAKKAN PROFESION REKA BENTUK PERINDUSTRIAN DI AMERIKA