Model prototyping system pengendali jarak jauh dengan embedded system arduino berbasis webserver HTTP 1.1 - USD Repository

  

MODEL PROTOTYPING SYSTEM PENGENDALI JARAK

JAUH DENGAN EMBEDDED SYSTEM ARDUINO BERBASIS

WEBSERVER HTTP 1.1

SKRIPSI

Diajukan Untuk Memenuhi Salah Satu Syarat

Memperoleh Gelar Sarjana Komputer

  

Program Studi Teknik Informatika

Oleh :

Fendi Dwi Fauzi

  

075314067

PROGRAM STUDI TEKNIK INFORMATIKA

JURUSAN TEKNIK INFORMATIKA

FAKULTAS SAINS DAN TEKNOLOGI

UNIVERSITAS SANATA DHARMA

YOGYAKARTA

  

2012

  

PROTOTYPE MODEL REMOTE CONTROL SYSTEM WITH

ARDUINO EMBEDDED SYSTEM BASE ON

WEBSERVER HTTP 1.1

A THESIS

Presented as Partial Fulfillment of The Requirements

to Obtain The Sarjana Komputer Degree

in Informatics Engineering Study Program

  

By :

Fendi Dwi Fauzi

075314067

INFORMATICS ENGINEERING STUDY PROGRAM

  

INFORMATICS ENGINEERING DEPARTMENT

FACULTY OF SCIENCE AND TECHNOLOGY

SANATA DHARMA UNIVERSITY

YOGYAKARTA

2012

  

ABSTRAK

Arduino merupakan board mikrokontroler yang bersifat opensource.

  

Penggunaan arduino jauh berkembang pesat digunakan berbagai macam proyek

teknologi komputer dan elektronika, misalnya server yang dibangun berbasis

embedded system arduino. Server yang dibangun dengan board mikrokontroler

arduino berfungsi sebagai system pengendali jarak jauh. Ethernet shield

wiznet5100 ditambahkan pada arduino sebagai shield agar arduino dapat bekerja

dalam jaringan komputer.

  Pada proyek tugas akhir ini, dirancang sebuah webserver berbasis arduino

yang berfungsi sebagai prototype system pengendali jarak jauh. Prototipe system

dikembangkan bertujuan melakukan proses mengolah I/O pada arduino. Input

webserver dirancang pada halaman HTML disisi web browser sebagai kontrol

perintah dari user. Webserver akan memberikan respon terhadap perintah kontrol

user. Pengujian dilakukan dengan teknik tapping pada jaringan untuk

menganalisis pertukaran protocol data yang terjadi.

  Kata kunci: arduino, webserver arduino, ethernet shield wiznet5100, prototype system pengendali jarak jauh, webduino

  

ABSTRACT

  Arduino is a opensource microcontroller board. Arduino rapidly growing used to a variety of computer technology and electronics projects, for an example server base from Arduino embedded systems. Server based from an Arduino microcontroller board is able to function as a remote control system. Ethernet shield wiznet5100 added for Arduino as a shield to running in computer networking.

  In this final project, designed a server based on Arduino that serves as a prototype remote-control system. The prototype system was developed aiming to do the processing I/O on the Arduino. Input process of websever design in client side with HTML page. Furthermore, the webserver will provide a response to user control commands. Testing is by tapping technique on the network to analyze the data exchange protocol that occurred.

  Keywords: arduino, arduino webserver, ethernet shield wiznet5100, remote-control system prototype, webduino

KATA PENGANTAR

  Puji syukur kepada Tuhan Yang Maha Esa, atas segala rahmat dan anugerah yang telah diberikan, sehingga penulis dapat menyelesaikan Tugas Akhir “ Model

  

Prototyping System Pengendali Jarak Jauh Dengan Embedded System

  ” ini dengan baik. Dalam menyelesaikan

  Arduino Berbasis Webserver HTTP 1.1

  tugas akhir ini, penulis tidak lepas dari bantuan sejumlah pihak, oleh sebab itu penulis ingin mengucapkan terima kasih kepada:

  1. Allah SWT dan Muhammad SAW , tempat dimana penulis memanjatkan doa untuk diberikan kemudahan dan hidayah dalam mengerjakan karya tulis ini.

  2. Henricus Agung Hernawan, S.T., M.Kom., selaku dosen pembimbing I tugas akhir penulis.

  3. Ir. Tjendro, M.Kom., selaku dosen pembimbing II tugas akhir penulis 4. Ibu dan Ayah yang telah memberi dukungan doa, materi, serta semangat.

  Tanpa semua itu penulis tidak akan memperoleh kesempatan untuk menimba ilmu hingga jenjang perguruan tinggi dan akhirnya dapat menyelesaikan karya ilmiah ini.

  5. Elisa Oktaviani yang telah banyak memberikan semangat dan doa untuk penulis.

  6. Untuk pihak-pihak yang tidak dapat penulis sebutkan satu per satu. Penulis mengucapkan terima kasih atas bantuannya sehingga penulis dapat menyelesaikan karya ilmiah ini Akhir kata, penulis berharap karya ilmiah ini dapat bermanfaat bagi kemajuan dan perkembangan ilmu pengetahuan.

  Yogyakarta, 23 Juli 2012 Penulis

  MOTTO

  ” (Fendi Dwi Fauzi)

  

DAFTAR ISI

  Halaman LEMBAR JUDUL .......................................................................................... i HALAMAN PERSETUJUAN PEMBIMBING ............................................. iii HALAMAN PENGESAHAN......................................................................... iv PERNYATAAN KEASLIAN HASIL KARYA............................................. v PERNYATAAN PERSETUJUAN PUBLIKASI KARYA ILMIAH UNTUK KEPENTINGAN AKADEMIS ...................................................................... vi ABSTRAK ...................................................................................................... vii ABSTRACT .................................................................................................... viii KATA PENGANTAR .................................................................................... ix MOTTO .......................................................................................................... x DAFTAR ISI ................................................................................................... xi DAFTAR GAMBAR ...................................................................................... xvi DAFTAR TABEL ........................................................................................... xviii

  BAB I. PENDAHULUAN I.1. Latar Belakang ....................................................................................

  1 I.2. Rumusan Masalah ...............................................................................

  2 I.3. Batasan Masalah .................................................................................

  2

  

xi

  I.4. Tujuan Penulisan ..............................................................................

  3 I.5. Metodelogi Penelitian .........................................................................

  3 I.6. Sistematika Penulisan .........................................................................

  4 BAB II LANDASAN TEORI II.1 Embedded System Arduino ...............................................................

  6 II.1.1 Arduino .........................................................................................

  6 II.1.2 Sejarah .............................................................................................

  7 II.1.3 Hardware ........................................................................................

  8 II.1.3.1 ATmega Pin Mapping ..................................................................

  9 II.1.3.2 Bentuk Board Arduino .................................................................

  11 II.1.3.3 Bootloader ....................................................................................

  14 II.1.4 Model Board Arduino .....................................................................

  16 II.1.5 Software Arduino IDE .....................................................................

  18 II.1.6 Kelebihan Arduino Sebagai Opensource Hardware .......................

  20 II.2 Shield Arduino ...................................................................................

  22 II.3 Input/Output .......................................................................................

  24 II.3.1 Sensor ..............................................................................................

  26 II.3.2. Switch .............................................................................................

  26 II.4 PWM .................................................................................................

  27 II.5 Protokol HTTP ...................................................................................

  28

  xii

  II.5.1 Non-Persistent dan Persistent Connections ....................................

  30 II.5.1.1 Non-Persistent Connections ........................................................

  31 II.5.1.2 Persistent Connections ................................................................

  34 II.5.2 HTTP Message Format ..................................................................

  35 II.5.2.1 HTTP Request Message ..............................................................

  35 II.5.2.2 HTTP Response Message ............................................................

  39 II.6 Software Analisa Protocol Jaringan ..................................................

  41 BAB III ANALISIS DAN PERANCANGAN III.1 Deskripsi Pemodelan Input/Output Webserver Arduino .................

  43 III.2 Skenario Perancangan ......................................................................

  44 III.2.1 Skenario Perancangan Input Digital - Output Analog (ON/OFF LED) ................................................................................................................... 44

  III.2.2 Skenario Perancangan Input Digital - Output Analog (Dimmer Lampu) ................................................................................................................... 46 III.4 Model Perilaku Sistem ......................................................................

  47 III.4.1 Skenario Perancangan ....................................................................

  47 III.5 Desain Antarmuka............................................................................

  50 III.5.1 Antarmuka halaman HTML ...........................................................

  50 III.5.1.1 Antarmuka HTML SPJJ-001 ......................................................

  51 III.5.1.2 Antarmuka HTML SPJJ-002 ......................................................

  51 III.5.2 Antarmuka Arduino Webserver .....................................................

  52

  

xiii

  

xiv

III.5.2.1 Daftar Alat dan bahan .................................................................

  52 III.6 Skenario Uji webserver dengan teknik tapping ................................

  53 BAB IV IMPLEMENTASI DAN ANALISIS PERANCANGAN IV.1 Implementasi Pemodelan Input/Output Webserver Arduino...........

  55 IV.1.1 Implementasi .................................................................................

  56 IV.2 Uji Webserver Dengan Teknik Tapping Menggunakan Software Sniffing ................................................................................................................... 65 IV.2.1 Analisis Use Case Use case SPPJJ-001 ........................................

  65 IV.2.1.1 Proses I/O Arduino dengan State OFF input ............................

  65 IV.2.1.2 Proses I/O Arduino dengan State ON input ...............................

  66 IV.2.1.3 Handling ACK LDR Gagal........................................................

  68 IV.2.2 Analisis Use Case Use case SPPJJ-002 ........................................

  69 IV.2.2.1 Proses I/O Arduino dengan input Slider ..................................

  69 IV.2.2.2 Tapping Protokol dengan software wireshark ...........................

  72 BAB V. PENUTUP V.1 Simpulan ...........................................................................................

  75 V.2 Saran ...................................................................................................

  76 DAFTAR PUSTAKA ...................................................................................

  77 LAMPIRAN

  xv 1. Skema Prototipe Webserver Arduino SPJJ ...............................................

  78 2. Coding ........................................................................................................

  79 3. Gambar Lampiran Hasil Perangkat ............................................................

  89 4. File Library Program ..................................................................................

  93 Library Webserver.h .................................................................................

  93 Library SPI.h ............................................................................................. 117 Library Ethernet.h ..................................................................................... 118 Library Protothread (pt.h) ......................................................................... 119 Library lc.h ................................................................................................ 126

  xvi DAFTAR GAMBAR Gambar 2.1 Prototyping arduino generasi pertama oleh Massimo Banzi ....

  33 Gambar 2.12 Mekanisme Response Time Modeling Non-Persistent ............

  48 Gambar 3.5 Diagram sequence komunikasi data SPJJ-002 ...........................

  47 Gambar 3.4 Diagram State komunikasi data SPJJ-001 ..................................

  44 Gambar 3.3 Diagram sequence komunikasi data SPJJ-001 ...........................

  42 Gambar 3.1 Skema Prototipe Sistem Pengendali Jarak Jauh .........................

  40 Gambar 2.15 Software Wireshark ..................................................................

  37 Gambar 2.14 Format header response HTTP message ...................................

  34 Gambar 2.13 Format header request HTTP message ....................................

  29 Gambar 2.11 Mekanisme 3-Way handshaking ............................................

  7 Gambar 2.2 Mapping dari PIN ATmega 328 ..................................................

  28 Gambar 2.10 Mekanisme Request – Reponse Web HTTP .............................

  27 Gambar 2.9 Konsep PWM dalam arduino .....................................................

  25 Gambar 2.8 Simbol switch ..............................................................................

  19 Gambar 2.7 Perbandingan sinyal digital dengan analog .................................

  18 Gambar 2.6 Software IDE arduino .................................................................

  15 Gambar 2.5 Arduino dengan versi minimum system (BBB dan RBBB) .......

  11 Gambar 2.4 Arsitektur logical arduino ...........................................................

  9 Gambar 2.3 Arduino Board v1 (Diecimila) ....................................................

  49

  xvii Gambar 3.6 Diagram State komunikasi data SPJJ-002 ..................................

  50 Gambar 3.6 Antarmuka HTML SPJJ-001......................................................

  51 Gambar 3.7 Antarmuka HTML SPJJ-002......................................................

  51 Gambar 3.8 Uji webserver dengan teknik tapping menggunakan software sniffing ...................................................................................................................

  53 Gambar 4.1 Tampilan Input OFF radiobutton SPJJ-001 ...............................

  65 Gambar 4.2 Tapping 3-way Handshake SPJJ-001 .........................................

  66 Gambar 4.3 Tampilan Input ON radiobutton SPJJ-001 .................................

  66 Gambar 4.4 Tapping POST SPJJ-001 dari user .............................................

  67 Gambar 4.5 Tapping method GET SPJJ-001 .................................................

  68 Gambar 4.6 Konfirmasi pesan ACK LDR gagal SPJJ-001 ...........................

  69 Gambar 4.7 Tapping 3-way Handshake SPJJ-002 ........................................

  72 Gambar 4.8 Tapping POST input slider SPJJ-002 ..........................................

  73 Gambar 4.9 Tapping method GET SPJJ-002 .................................................

  74

  DAFTAR TABEL

Tabel 2.1 Perbandingan spesifikasi microcontroller ATmega 8 /168 /328 pada arduino board .................................................................................................

  8 Tabel 2.2 Deskripsi Mapping Pin ATmega 328 .............................................

  10 Tabel 2.3 Model Board Arduino .....................................................................

  16 Tabel 2.4 Method Request pada HTTP/1.0 dengan HTTP/1.1 ......................

  38

  

xviii

BAB I PENDAHULUAN I.1 Latar belakang Mikrokontroler adalah suatu alat elektronika digital yang mempunyai

  

masukan dan keluaran serta kendali dengan program yang bisa ditulis dan dihapus

dengan cara khusus. Secara harfiahnya bisa disebut "pengendali kecil" dimana

sebuah sistem elektronik yang sebelumnya banyak memerlukan komponen-

komponen pendukung seperti IC TTL dan CMOS dapat direduksi/diperkecil dan

akhirnya terpusat serta dikendalikan oleh sebuah chip mikrokontroler.

  Arduino merupakan mikrokontroler yang dirancang dalam single board

dengan hardware Atmel AVR sebagai prosessornya. Jenis mikrokontroller yang

digunakan dalam arduino adalah ATMega 8/168/328 dan ATMega 2560

memiliki fasilitas PWM, komunikasi serial, ADC - DAC, timer, interupt, SPI dan

  

I2C. Sehingga Arduino bisa digabungkan bersama modul atau alat lain dengan

protokol yang berbeda-beda. Selain itu arduino bersifat opensource dimana setiap

produsen diperbolehkan membuat board arduino serta mengembangkannya sesuai

kebutuhan spesifikasi elektronika di berbagai bidang. Bahasa pemrograman yang

digunakan arduino adalah menggunakan Bahasa C yang sudah ada, lebih tepatnya

adalah bahasa C yang menggunakan compiler AVR-GCC (AVR – GNU C-

Compiler).

  

1

  2 Dewasa ini penggunaan arduino jauh berkembang pesat salah satu

contohnya adalah server yang dibangun dengan arduino. Contohnya adalah server

arduino bernama Tiny Webserver karena memiliki kelebihan seperti penggunaan

resource yang digunakan relatif kecil baik dari segi daya, memory, kerumitan dan

efisiensi dibandingkan dengan server yang dibangun oleh computer (Predescu, 2010).

  Arduino dapat digunakan sebagai webserver dengan menambahkan

Ethernet shield Wiznet W5100. Ethernet Shield arduino telah mendukung

protocol TCP/UDP sehingga mampu menerima maupun mengirim data secara

jaringan client - server. Ethernet shield yang dikembangkan saat ini mampu

menangani thread koneksi sampai dengan empat socket secara simultan.

Webserver arduino yang dibangun dengan protocol HTTP 1.1 dapat digunakan

sebagai pengendali jarak jauh dan system otomatisasi. Sistem pengendali jarak

jauh merupakan system yang mampu mengendalikan perangkat yang diatur oleh

arduino melalui media kabel maupun nirkabel. Seperti contoh mengendalikan

perangkat TV, lampu, dan berbagai macam alat elektronik dikendalikan oleh

arduino. Sedangkan system otomatisasi yang dibangun oleh arduino dapat berupa

penggerak gerbang otomatis menggunakan perangkat wireless.

  Dari situs resmi www.arduino.cc , Arduino dengan Ethernet Shield

WIZNET 5100 menyediakan paket library Webduino. Library ini dapat digunakan

sebagai webserver yang mampu bekerja pada protocol HTTP 1.1. Dengan library

ini arduino dapat dikembangkan menjadi webserver untuk dijadikan model

prototype sebagai system pengendali jarak jauh memproses I/O analog dan digital.

  3 I.2 Rumusan Masalah Dari melihat latar belakang masalah, maka dapat dirumuskan adalah

bagaimana model prototyping system pengendali jarak jauh webserver arduino

yang dibangun menggunakan protocol HTTP 1.1 dengan input/output analog dan

digital.

  I.3 Batasan Masalah Dari penulisan karya ilmiah ini penulis membatasi lingkup masalah pada

perancangan model prototype system pengendali jarak jauh webserver arduino

dengan protocol HTPP 1.1 dengan I/O berupa analog dan digital dengan koneksi

sejumlah single connection.

  I.4 Tujuan penulisan Tujuan penulisan skripsi ini dapat menghasilkan prototyping system

pengendali jarak jauh dengan webserver arduino yang dibangun dengan protocol

  HTTP 1.1.

  I.5 Manfaat Penulisan

Adapun manfaaat dari pembuatan tugas akhir ini adalah :

  1. Manfaat Bagi penulis: Dapat bermanfaat sebagai penerapan ilmu ataupun pengalaman yang telah didapat baik di bangku kuliah maupun dikehidupan sehari-hari.

2. Manfaat secara teoritis:

  4 Dapat dijadikan sebagai bahan pembelajaran dan acuan untuk pengembangan lebih lanjut webserver HTTP 1.1 menggunakan arduino dan Ethernet shield dengan chipset WIZNET 5100.

  3. Manfaat secara praktis: Menghasilkan sebagai model prototyping system pengendali jarak jauh menggunakan webserver HTTP 1.1 yang dibangun oleh embedded system arduino beserta shield Ethernet dengan chipset WIZNET 5100.

I.6 Metodelogi Penulisan

  Metode penelitian pada karya ilmiah ini adalah :

  

1. Studi pustaka mengenai literature arduino dan Ethernet shield dengan

memahami buku referensi atau sumber-sumber yang lain yang diperlukan.

  2. Analisis kebutuhan perancangan.

  

3. Mengimplementasikan analisis dan desain tersebut ke dalam system .

  4. Analisa system yang dikembangkan dan menguji hasil simulasi perancangan.

I.7 Sistematika Penulisan

BAB I PENDAHULUAN Bab ini berisi tentang latar belakang masalah, rumusan masalah, batasan masalah,

  

tujuan penelitian, dan metodologi penelitian yang digunakan serta sistematika isi

penulisan laporan.

  5 BAB II LANDASAN TEORI

Bab ini menjelaskan konsep dan teori dasar yang mendukung penulisan skripsi ini. BAB III ANALISIS dan PERANCANGAN SISTEM Bab ini berisi pembahasan mengenai analisis kebutuhan, desain dan perancangan webserver arduino yang dibangun dengan protocol HTPP 1.1. BAB IV IMPLEMENTASI dan ANALISA HASIL Bab ini berisi implementasi dari hasil perancangan pada Bab III dan analisis terhadap hasil pengujian dari aplikasi yang telah dibangun. BAB V KESIMPULAN dan SARAN Bab ini berisi tentang kesimpulan dan saran dari penulisan skripsi yang disusun.

BAB I I LANDASAN TEORI II.1 Embedded System Arduino II.1.1 Arduino Arduino adalah Arduino adalah platform prototipe elektronik open-

  

source berada dibawah lisensi Creative Commons Attribution-ShareAlike 3.0,

berdasarkan perangkat keras dan lunak yang fleksibel dan mudah digunakan.

  

Lisensi Creative Commons Attribution-ShareAlike 3.0 merupakan lisensi

opensource yang memberikan jaminan kebebasan untuk mendistribusikan pada

pihak umum, mengubah dan membuat dokumentasi lengkap terhadap

pengembangan piranti board arduino.

  Arduino diperuntukkan bagi seniman, desainer, hobiis dan siapa pun

yang tertarik untuk membuat obyek atau lingkugan yang interaktif. Hardwarenya

memiliki prosesor Atmel AVR dan softwarenya memiliki bahasa pemrograman

sendiri. Arduino hardware di program menggunakan program Wiring-based

language (syntax + libraries), merupakan bahasa pemrograman C++ dengan

penyederhanaan serta modifikasi bahasa pemrogramannya sedangkan

implementasi code menggunakan software bebasis IDE.

  

6

  7 II.1.2 Sejarah Proyek arduino ini berawal di Ivrea, Italia pada tahun 2005 berawal

kesulitan mempelajari microcontroller di lingkungan edukasi maka dibuatlah

system minimum ATmega8 dengan bootloader dan software compiler tersendiri.

Pendiri proyek ini adalah Massimo Banzi dan David Cuartilles bernama proyek

Arduin of Ivrea , karakter utama sejarah kota tersebut. "Arduino" adalah sebuah

kota di Italia, yang berarti "teman yang kuat". Versi bahasa Inggris dari nama

tersebut adalah "Hardwin". Sejalan perkembangannya Arduino sebagai hardware

yang opensource memiliki berbagai versi yang dikembangkan oleh pengguna di

seluruh dunia.

Gambar 2.1 Prototyping arduino generasi pertama oleh Massimo Banzi

  8 II.1.3 Hardware Arduino menggunakan beberapa microcontroller seri ATmega8,

ATmega168, ATmega328, ATmega1280, ATmega2560 dan beberapa

microcontroller dari keluarga ATMEL yang compatible untuk arduino board.

Penggunaan dari subsitusi microcontroller ini tidak terlepas dari datasheet resmi 8

bit microcontroller 4/8/16/32K in-programming system yang dikeluarkan oleh

www.atmel.com sebagai produsen mikrochip.

  Berdasarkan datasheet yang dikelurkan ATMEL sebagai produsen

mikrontroller dari ATmega,arduino dikembangkan dan dibuat sesuai dengan

mapping fungsi dari setiap pin. Untuk saat ini teknologi board arduino

menggunakan microcontroller berbasis ATmega168 dan 328 dengan

perbandingan ukuran flash memorynya dan beberapa fitur lainnya.

  Dari datasheet 8 bit microcontroller 4/8/16/32K in-programming system,

Board Arduino menggunakan dapat microcontroller ATmega8 /168/328 sebagai

prossesor. Berikut ini merupakan tabel perbandingan spesifikasi dari

microcontroller ATmega8 /168/328.

Tabel 2.1 Perbandingan spesifikasi microcontroller ATmega 8 /168 /328 pada arduino board

  Microcontroller ATmega 8 ATmega 168 ATmega 328 Operating Voltage

  5V

  5V

  5V Input Voltage 7-12V 7-12V 7-12V (recommended) Input Voltage 6-20V 6-20V 6-20V (limits)

  9 Digital I/O 14 pins (of which 3 provide PWM output) 14 pins (of which 6 provide PWM output) 14 pins (of which

  6 provide PWM output) Analog Input Pins 6 pins 6 pins 6 pins DC Current per I/O Pin 40 mA 40 mA 40 mA DC Current for

  3.3V Pin 50 mA 50 mA 50 mA Flash Memory

  8 KB (1 kb used by bootloader)

  16 KB (2 kb used by bootloader)

  32 KB (2 kb used by bootloader) SRAM

1 KB

  1 KB

  2 KB EEPROM 512 bytes 512 bytes 1 bytes Clock Speed 16 mhz 16 mhz 16 mhz

II.1.3.1 ATmega Pin Mapping

Gambar 2.2 Mapping dari PIN ATmega 328

  10 Microcontroller ATmega 328 bertipe PDIP dan DIP yang digunakan

pada arduino memiliki mapping pin sebanyak 28 dengan setiap pin memiliki

fungsi masing – masing. Berikut ini table fungsi I/O setiap pin :

  VCC

  15 OC1A/PCINT1 (port B) Digital pin 9 (PWM)

  16 SS/OC1B/PCINT2 (port B) Digital pin 10 (PWM)

  17 MOSI/OC2A/PCINT3 (port B) Digital pin 11 (PWM)

  18 MISO/PCINT4 (port B) Digital pin 12

  19 SCK/INT5 (port B) Digital pin 13

  20 AVCC

  21 AREF Analog reference

  13 PCINT23/AIN1 (port D) Digital pin 7

  22 GND GND

  23 ADC0/PCINT8 (port C) Analog input 0

  24 ADC1/PCINT9 (port C) Analog input 1

  25 ADC2/PCINT10 (port C) Analog input 2

  26 ADC3/PCINT11 (port C) Analog input 3

  27 ADC4/SDA/PCINT12 (port C) Analog input 4

  14 PCINT0/CLKO/ICP1 (port B) Digital pin 8

  12 PCINT22/OC0A/AIN0 (port D) Digital Pin 6 (PWM)

Tabel 2.2 Deskripsi Mapping Pin ATmega 328

  6 PCINT20/XCK/T0 (port D) Digital pin 4

  No Pin Nama Pin Fungsi pada Board Arduino

  1 PCINT14/Reset Reset

  2 PCINT16/RXD (port D) Digital pin 0 (RX)

  3 PCTINT17TXD (port D) Digital pin 1 (TX)

  4 PCINT18/INT0 (port D) Digital pin 2

  5 PCINT19/OC2B/INT1 (port D) Digital pin 3 (PWM)

  7 VCC

  11 PCINT21/OC0B/T1 (port D) Digital pin 5 (PWM)

  VCC

  8 GND GND

  9 PCINT6/XTAL1/TOSC1 (port

  B) Crystal

  10 PCNIT7/XTAL2/TOSC2 (port

  B) Crystal

  28 ADC5/SCL/PCINT13 (port C) Analog input 5

Gambar 2.3 Arduino Board v1 (Diecimila) Gambar diatas merupakan standard bentuk board arduino yang

  11 II.1.3.2 Bentuk Board Arduino

  

dikembangkan oleh tim arduino. Memiliki ukuran 68.6 mm × 53.3 mm atau

sekitar 2.7 x 2.1 inchi dengan bentuk bukan persegi yang unik.

  Detail nama dan fungsi pin :

  • Analog Reference pin (orange)
  • Digital Ground (light green)
  • Digital Pins 2-13 (green)
  • Digital Pins 0-1/Serial In/Out - TX/RX (dark green)
  • Reset Button - S1 (dark blue)

  12

  • In-circuit Serial Programmer (blue-green)
  • Analog In Pins 0-5 (light blue)
  • Power - Ground Pins (power: orange, grounds: light orange)
  • External Power Supply In (9-12VDC) - X1 (pink)
  • Toggles External Power and USB Power (Jumper untuk external power) - SV1 (purple)
  • USB – Koneksi ke PC Komputer untuk upload sketch dari software

  arduino IDE (yellow)

  • ICSP – jumper dengan 2x3 header sebagai alternative upload sketch ataupun burn bootloader dari usbdownloader
  • IC – microcontroller ATmega 8/168/328

1. Digital Pins

  Dalam beberapa fungsi yang spesifik, pin digital pada board arduino dapat

digunakan berbagai fungsi sebagai input maupun output dengan perintah

pinMode(), digitalRead(), digitalWrite. Setiap pin telah memiliki resistor internal

yang dapat diaktifkan dengan perintah digitalWrite() pada kondisi logika HIGH

ataupun LOW saat pin tersebut digunakan sebagai input. Untuk maximum arus

output setiap pin menghasilkan 40 mA

  • Serial: 0 (RX) and 1 (TX). Digunakan untuk mengidentifikasikan

  receive (RX) dan transmit (TX) TTL serial data. Fungsi ini biasanya dapat dilihat dari nyala LED indicator ketika upload sketch program melalui USB.

  13

  • External Interrupts: 2 and 3. Pin ini dapat dikonfigurasi untuk memicu

  perintah pada nilai yang rendah, naik atau turun, atau perubahan dalam nilai.

  • PWM: 3, 5, 6, 9, 10, and 11. Dari beberapa output pin digital, 6

  diantaranya dapat difungsikan sebagai PWM dengan perintah analogWrite(). Pada board arduino yang menggunakan microcontroller

ATmega8, PWM output keluarannya hanya dari pin 9, 10, dan 11.

  • BT Reset: 7. (Arduino BT-only).
  • SPI: 10 (SS), 11 (MOSI), 12 (MISO), 13 (SCK). Pin ini digunakan

  mendukung komunikasi SPI,dimana sketch program dapat diupload langsung tanpa menggunakan software arduino (upload sketch melalui

  ICSP menggunakan usb downloader).

  • LED: 13. Led ini berfungsi sebagai indicator yang terhubung dengan pin 13.

2. Analog Pins

  Analog pin dapat mendukung fungsi ADC hingga 10 bit dengan perintah

analogRead(). Beberapa dari input pin analog dapat juga digunakan sebagai digital

pin, contohnya dari analog input 0 sebagai pin digital input 14 sampai pada pin 5

sebagai digital pin 19.

  14

3. Power Pins

  • VIN merupakan input voltage untuk board arduino, biasanya dapat langsung dihubungkan dengan input tegangan 9V.
  • 5V. Pin 5V akan menghasilkan tegangan 5v untuk supply tegangan logic

  microcontroller, selain itu supply 5v juga akan digunakan ketika menggunakan shield arduino yang ditumpuk diatasnya.

  • 3V3. 3.3 volt supply generated untuk on-board FTDI chip (komunikasi USB – TTL).
  • GND. Ground pin.

  Other Pins

  • AREF. Pin ini merefernsikan tegangan untuk input analog, fungsi nya dengan perintah analogReference().
  • Reset.

II.1.3.3 Bootloader

  Arduino dapat dikembangkan dari minimum system ATmega8/168/328

dengan mengisinya dengan bootloader. Tujuan adanya bootloader arduino

bermaksud memudahkan board arduino untuk berkomunikasi secara 2 level yakni

level atas adalah software Arduino IDE dan level bawah adalah sketch yang

menjadi main program yang berinteraksi langsung dengan device.

  15 Bootloader merupakan mekanisme logical yang menarik dari arduino.

  

Bootloader dapat menerjemahkan sketch atau code program yang dibuat didalam

software IDE yang nantinya akan diupload ke microcontroller itu sendiri.

Gambar 2.4 Arsitektur logical arduino Bootloader hanya disimpan pada area tertentu di flash memory

  

microcontroller. Misalnya pada mikro ATmega328 mengalokasikan 2 kb untuk

bootloader. Pada saat microcontroller start, sistem menjalankan bootloader

kemudian bootloader sendiri akan mengeksekusi sketch code program (main

program) yang diterjemahkan oleh bootloader arduino.

  16 II.1.4 Model Board Arduino Arduino sebagai hardware yang opensource saat ini telah berkembang

pesat dan dipatenkan dengan beberapa nama. Awal perkembangannya arduino

dipatenkan dengan nama board arduino diecimila yang artinya 10.000 dalam

bahasa italia (pembuatan board sebanyak 10.000 untuk umum) dan kemudian

release resmi dengan nama ardiuno duemilanove pada tahun 2009. Dari beberapa

banyak jenis arduino yang dikenal pasaran, arduino tetap menggunakan prossesor

inti yaitu microcontroller ATmega168,328, 1280 dan 2560 sedangkan ATmega8

sudah tidak banyak dipakai lagi karena bootloader arduino memakai in-

programming sebesar 2 kb dari space memori microcontroller ATmega.

  1 Tabel 2.3 Model Board Arduino Tabel model board arduino diatas adalah keluaran resmi dari tim 1

pengembang arduino di Italia. Sedangkan pengembangan board arduino di dunia

http://en.wikipedia.org/wiki/Arduino

  17

telah banyak dengan nama paten tersendiri. Pengembangan board ini tidak

menyalahi hukum karena karena sifat arduino yang opensource hardware. Namun

untuk menghindari nama komersial dari arduino,maka pengembang yang

mendistribusikan arduino baik dari design tim arduino resmi di www.arduino.cc

atau design pengembang wajib menggunakan kata arduino ‘compatible’ atau ‘-

duino’ sebagai nama variannya. Sedangkan forum bebas yang mengembangkan

dan mendistribusikan ulang arduino berada di situs resmi www.freeduino.org .

  Model board arduino selain tersedia atau mendukung secara hardware

namun mampu mendukung secara software, khususnya untuk bootloader.

  

Bootloader digunakan untuk memudahkan komunikasi dengan software arduino

  

IDE. Model board ini dikenal dengan Bare Bones Board (BBB) dan Really Bare

Bones Board (RBBB) yang hanya menggunakan microcontroller sebagai inti dan

beberapa komponen yang dipakai sebagai minimum system. Implementasinya

dapat dirancang dan dibuat pada breadboard ataupun pcb dengan ukuran kecil,

kemudian bootloader dipasang didalam micro. Untuk upload sketch program yang

telah dicompile dari software IDE menggunakan USB downloader ataupun

dengan converter Serial maupun USB.

  18 Gambar 2.5 Arduino dengan versi minimum system (BBB dan RBBB)

II.1.5 Software Arduino IDE

  Software arduino IDE adalah software aplikasi cross-platform ditulis

dengan bahasa pemrograman java, dan berasal dari IDE untuk bahasa

pemrograman pengolahan wiring project. Hal ini dirancang untuk memudahkan

para pengguna yang baru mempelajari microcontroller dengan software

development. Termasuk didalam software dengan kode editor dengan fitur seperti

sintaks, brace pencocokan, dan indentasi otomatis, dan juga mampu meng-

compile dan meng-upload program dengan sekali perintah klik tombol.

  IDE Arduino dilengkapi dengan library C / C++ membuat operasi input

/ output jauh lebih mudah dipahami. Pengguna hanya perlu mendefinisikan dua

fungsi untuk membuat sebuah program runnable ketika dieksekusi dalam board

arduino :

  19

  • * Setup() - fungsi berjalan sekali pada awal dari sebuah program yang dapat

    menginisialisasi pengaturan.
  • * Loop() - fungsi yang dieksekusi berulang kali sampai board dalam

    keadaan mati.

Gambar 2.6 Software IDE arduino Berikut ini contoh code program yang ditulis dalam software arduino

  

IDE, code ini untuk membuat LED pin 13 berada dalam kondisi ON-OFF(blink)

selama selang waktu beberapa detik.

  #define LED_PIN 13 void setup () { pinMode (LED_PIN, OUTPUT); // enable pin 13 for digital output } void loop () {

  20 digitalWrite (LED_PIN, HIGH); // turn on the LED delay (1000); // wait one second (1000 milliseconds) digitalWrite (LED_PIN, LOW); // turn off the LED delay (1000); // wait one second } Fungsi I/O Pin arduino Digital I/O

  • pinMode() : konfigurasi pin arduino yang berfungsi sebagai input/output
  • • digitalWrite() : output nilai HIGH (5v) atau LOW(0v) dari konfirgurasi

    pin output.
  • digitalRead() : membaca nilai dari pin arduino, seperti nilai logika HIGH

  atau LOW Analog I/O

  • • analogReference() : konfigurasi dari tegangan referensi yang digunakan

  sebagai input analog

  • analogRead() : Membaca nilai dari analog pin input arduino seperti sensor analog menggunakan fungsi ADC mikrokontroller.
  • analogWrite() : berfungsi sebagai output PWM pin arduino

II.1.6 Kelebihan Arduino Sebagai Opensource Hardware

  Pengembangan desain dan board arduino bersifat opensource hardware

yang dilindungi lisensi Attribution-ShareAlike 3.0 Unported (CC BY-SA 3.0).

  

Dengan lisensi ini setiap orang diperbolehkan mengembangkan dan membuat

dokumentasi dari piranti arduino board yang diproduksi sebagai varian baru.

  21 Tidak hanya demikian, selain board arduino yang dikembangkan, shield sebagai

board pendukung lain dari arduino bisa mudah untuk dikembangkan dengan

dokumentasi lengkap.

  Dari beberapa hal yang berkaitan dari arduino sebagai opensource

hardware untuk board edukasi memliki beberapa kelebihan dibandingkan dengan

board trainer elektronika yang dikembangkan :

  1. Arduino menggunakan software yang berbasis IDE sehingga memudahkan pengguna awam untuk belajar bahasa pemrograman level microcontroller.

  2. Pada level hardware, arduino memiliki bootloader sebagai program kecil yang ditanamkan dalam microcontroller ATmega dimana berfungsi untuk melakukan interaksi ke level atas dengan software IDE ketika program di compile dan di upload.

  Sedangkan pada level bawah, bootloader dapat mengeksekusi

sketch yang telah di upload pada mikrokontroller.

3. Multi platform, software arduino IDE dapat dijalankan pada semua jenis system operasi seperti Windows, Mac maupun Linux.

  Tidak hanya itu drivernya menggunakan chipset FTDI sebagai koneksi USB telah mendukung pada semua system operasi.

  4. Tersedia kumpulan library dalam bentuk java, C/C++ siap pakai dan juga mampu digunakan dengan banyak perangkat input/output seperti sensor, LCD, 7-segmen maupun Ethernet.

  22

  5. Compatible dengan banyak shield sebagai modul pendukung fungsi pengembangan board arduino untuk proyek piranti elektronika.

II.2 Shield Arduino

  Shield arduino dibuat untuk memperluas fungsi penggunaan untuk

keperluan perangkat elektronika lain. Seperti contoh arduino tidak mampu

menggerakan motor stepper dan motor servo (driver motor) karena arduino tidak